嗨,我正在使用 LiveData 而不是 MutableLiveData,因为我从 Room 获取 LiveData 并且即使在删除binding.setLifecycleOwner(this);. 我的问题,这有什么问题吗?希望对其他人有所帮助
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 回答