0

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

4

1 回答 1

3

如果您不打算设置 a LifecycleOwner,那么您最好不要使用LiveData.

使用 的最大好处之一LiveData,尤其是使用RoomDataBinding时,它能够感知生命周期并观察到值。这意味着它将能够使用最新的更新数据自动更新您的视图。

根据官方文档:setLifecycleOwner()用于LiveData能够观察到变化,例如 from Room。如果没有LifecycleOwner设置,则LiveData不会观察到,也不会通过数据绑定将更新发送到您的 UI。

为了快速测试,我在我的一个活动中注释掉了binding.setLifecycleOwner(this)。结果证明文件是真实的。我的 UI 不再从我的LiveData对象中获得更改。

于 2019-02-11T07:24:43.250 回答