LiveData或DataBinding观察者

时间:2018-10-16 00:51:52

标签: android android-livedata

我在Android应用程序上使用MVVM,在ViewModel上,我有很多观察者(来自数据绑定),例如ObservableBooleanObservableField,我读到我可以使用LiveData/MutableLiveData代替该观察者。 .. 有什么不同?我可以用LiveData/MutableLiveData替换所有的数据绑定观察者吗?

例如:

替换:

val loading: ObservableBoolean = ObservableBoolean()

通过:

val loading: MutableLiveData<Boolean> = MutableLiveData()

2 个答案:

答案 0 :(得分:1)

很多次过去了,我学到了很多东西... 用LiveData替换所有可观察到的数据绑定,因为LiveData遵守Activity生命周期,并且可以在JetPack库中使用,例如Room,Coroutine ...

答案 1 :(得分:0)

取决于您从何处读取数据。

在我们当前的项目中,我们直接从RoomDB阅读。 RoomDB能够发送回liveData对象。

  1. 通过ViewModel,您对RoomDB进行查询,该查询将返回LiveData(RoomDB将成为您的真实真相)
    1. 您的视图说一个活动或片段-以观察者身份订阅此视图模型
    2. 然后根据返回的响应更新视图。
    3. 您还可以通过Android Databinding(Using LiveData with Data Binding
    4. 直接绑定xml。

如果您在获取

后进行了任何修改,通常会使用可变数据

This is a good Place to Start https://codelabs.developers.google.com/codelabs/android-room-with-a-view/#0