嗨,我正在使用 LiveData 而不是 MutableLiveData,因为我从 Room 获取 LiveData 并且即使在删除binding.setLifecycleOwner(this);
. 我的问题,这有什么问题吗?希望对其他人有所帮助
问问题
252 次
1 回答
3
如果您不打算设置 a LifecycleOwner
,那么您最好不要使用LiveData
.
使用 的最大好处之一LiveData
,尤其是使用Room
和DataBinding
时,它能够感知生命周期并观察到值。这意味着它将能够使用最新的更新数据自动更新您的视图。
根据官方文档:setLifecycleOwner()
用于LiveData
能够观察到变化,例如 from Room
。如果没有LifecycleOwner
设置,则LiveData
不会观察到,也不会通过数据绑定将更新发送到您的 UI。
为了快速测试,我在我的一个活动中注释掉了binding.setLifecycleOwner(this)
。结果证明文件是真实的。我的 UI 不再从我的LiveData
对象中获得更改。
于 2019-02-11T07:24:43.250 回答