【发布时间】:2018-08-10 10:53:03
【问题描述】:
我正在尝试在我的应用程序中实现 Room 和 Livedata。 我使用 LiveData 来更新更改。
我有一个 ViewModel,它返回一个 LiveData 对象(由 Room 通过 Dao 类返回),我在我的视图中观察到这个 LiveData。
我在每个添加观察者的地方都设置了断点:
mSessionViewModel.sessionsList.observe(mActivity, Observer<List<Session>> { list ->
setSessionList(list!!)
})
但是,当我在调试并检查 LiveData 对象的 mObservers 变量时,我发现 mIterators 增加而没有达到创建观察者的断点(如上):
谁能解释我这种行为?即使我不创建新的观察者,似乎也会添加观察者...... 最终可能是检测到 LiveData 变化的次数,但我预计观察者列表不会增加。
【问题讨论】:
-
AFAIK ,他们会继续添加,但是android最终会在一段时间后删除旧的观察者,你不必担心观察者的数量会随着他们的管理而增加
-
取决于您拥有此代码的位置:
mSessionViewModel.sessionsList.observe(
标签: android kotlin observable android-room android-livedata