我有一个单独的类,我在其中处理数据获取(特别是 Firebase),我通常从中返回 LiveData 对象并异步更新它们。现在我想将返回的数据存储在 ViewModel 中,但问题是为了获得所述值,我需要观察从我的数据获取类返回的 LiveData 对象。观察方法需要一个 LifecycleOwner 对象作为第一个参数,但我的 ViewModel 中显然没有该对象,而且我知道我不应该在 ViewModel 中保留对 Activity/Fragment 的引用。我应该怎么办?
原文由 Vuk Bibic 发布,翻译遵循 CC BY-SA 4.0 许可协议
在 Google 开发人员 Jose Alcérreca 的 这篇博客文章 中,建议在这种情况下使用转换(请参阅“存储库中的 LiveData”段落),因为 ViewModel 不应包含与
View
相关的任何引用(活动,上下文等),因为它很难测试。