Livedata与Rxjava

时间:2018-08-03 04:55:50

标签: viewmodel rx-java2 android-architecture-components android-livedata android-jetpack

我必须花很多时间在业务逻辑中学习和实现Livedata(尤其是MediatorLivedata),因为它有助于添加来自各种来源的数据。它取得了成功,因为我可以将FCM,Network或RoomDatabase作为不同的源添加到MediatorLivedata中,并在ViewModel中进行观察。它实际上可以很好地扩展。但是,它仍然缺少强大的RxJava2实现,例如很好地链接请求,平面地图等。似乎RxJava主要用于业务逻辑,但是实际上,我看到很多公司将RxJava与带有附加功能/库的UI一起使用。实际上,这使LiveData与表示逻辑无关。因此,我想知道LiveData在表示逻辑方面(在ViewModel中使用它)是否比RxJava更好/更干净。您对未来有何建议?

2 个答案:

答案 0 :(得分:2)

我认为您可以一起使用RxJava和LiveData。 RxJava将使用到Model层下,将其用于请求并从服务器或本地数据库接收数据。

然后将LiveData注册到活动/片段,因为使用LiveData可以轻松处理活动/片段的生命周期,并且它是为此目的而设计的。

答案 1 :(得分:1)

RxJava对LiveData既无优缺点,也有不同。 Android体系结构组件旨在为Android开发人员提供模型体系结构模式。因此,如果您对LiveData感到满意,请使用它,或者如果您对RxJava感到满意,请使用它。您可以使用这两个库进行所有操作。 尽管RxJava确实包含很多语法糖,但也可以使用Livedata来实现。