LiveData与可观察的数据对象

时间:2018-12-01 15:51:31

标签: android-databinding android-livedata android-jetpack

根据LiveData documentation,其中一项功能旨在使用可观察的模式来通知数据更改。 (与此同时,LiveData还提供了许多其他有希望的功能)

另一方面,基于documentationObservable data object可以通知其他人有关其数据的更改。

结果,这两个功能似乎是相同的。

问题是:

LiveData与其他功能结合使用会更好吗?

2 个答案:

答案 0 :(得分:2)

根据LiveData文档:

  

LiveData是可观察的数据持有者类。与常规的可观察对象不同,LiveData具有生命周期感知功能,这意味着它尊重其他应用程序组件(例如活动,片段或服务)的生命周期。这种意识确保LiveData仅更新处于活动生命周期状态的应用程序组件观察者。

因此,它本质上是一种可感知生命周期的,现在它是一个优势,不是吗? 但是,对于仅使用RxJavaLiveData并没有任何限制,两者可以一起使用。

实际上,最好在数据层中没有像 Repository 这样的生命周期可用的情况下使用RxJava,并将LiveData保留在生命周期很重要的层中,例如 Presentation 。 strong>层。

答案 1 :(得分:1)

LiveData就像可观察的对象,但是与可观察的对象不同,它是生命周期感知的。因此,这意味着实时数据将仅更新处于活动状态的应用程序组件观察器。但是,您并不总是需要使用实时数据。我想说,当涉及生命周期组件(例如活动和片段)时,livedata会派上用场。有关更多信息,请查看When to use RxJava in Android and when to use LiveData from Android Architectural Components?