在数据绑定中使用 LiveData 而不是 MutableLiveData
Using LiveData in data binding instead of MutableLiveData
您好,我正在使用 LiveData 而不是 MutableLiveData,因为我正在从 Room 获取 LiveData,并且即使在删除 binding.setLifecycleOwner(this);
后它仍然可以工作。我的问题是,这有什么问题吗?希望对其他人有帮助
如果您不打算设置 LifecycleOwner
,那么您最好不要使用 LiveData
。
使用 LiveData
的最大好处之一,尤其是 Room
和 DataBinding
是它能够感知生命周期并观察值。这意味着它将能够使用最新更新的数据自动更新您的视图。
根据 official documentations:setLifecycleOwner()
用于 LiveData
以便能够观察变化,例如来自 Room
。如果没有设置 LifecycleOwner
,则不会观察到 LiveData
,并且不会通过数据绑定将更新发送到您的 UI。
为了进行快速测试,我在我的一个活动中注释掉了 binding.setLifecycleOwner(this)
。结果证明文件是真实的。我的 UI 不再从我的 LiveData
对象中获取更改。
您好,我正在使用 LiveData 而不是 MutableLiveData,因为我正在从 Room 获取 LiveData,并且即使在删除 binding.setLifecycleOwner(this);
后它仍然可以工作。我的问题是,这有什么问题吗?希望对其他人有帮助
如果您不打算设置 LifecycleOwner
,那么您最好不要使用 LiveData
。
使用 LiveData
的最大好处之一,尤其是 Room
和 DataBinding
是它能够感知生命周期并观察值。这意味着它将能够使用最新更新的数据自动更新您的视图。
根据 official documentations:setLifecycleOwner()
用于 LiveData
以便能够观察变化,例如来自 Room
。如果没有设置 LifecycleOwner
,则不会观察到 LiveData
,并且不会通过数据绑定将更新发送到您的 UI。
为了进行快速测试,我在我的一个活动中注释掉了 binding.setLifecycleOwner(this)
。结果证明文件是真实的。我的 UI 不再从我的 LiveData
对象中获取更改。