嗨,我使用LiveData而不是MutableLiveData,因为我从Room获取LiveData,即使删除了binding.setLifecycleOwner(this);
,它也可以正常工作。我的问题,这有什么问题吗?希望对别人有帮助
答案 0 :(得分:3)
如果您不打算设置LifecycleOwner
,则最好不要使用LiveData
。
使用LiveData
(尤其是Room
和DataBinding
)的最大好处之一是它可以了解生命周期并观察值。这意味着它将能够使用最新的更新数据自动更新您的视图。
根据official documentations:setLifecycleOwner()
用于LiveData
以便能够观察到变化,例如来自Room
的变化。如果未设置LifecycleOwner
,则不会观察LiveData
,并且不会通过数据绑定将任何更新发送到您的UI。
为了进行快速测试,我在我的一项活动中注释了binding.setLifecycleOwner(this)
。结果证明文档是正确的。我的用户界面不再从我的LiveData
对象中获得更改。