我必须花很多时间学习和实现业务逻辑中的Livedata(尤其是MediatorLivedata(,因为它有助于添加来自各种来源的数据。它取得了成功,因为我可以将FCM、Network或RoomDatabase作为不同的源添加到我的MediatorLivedata中,并在ViewModel中观察它。实际上它的伸缩性非常好。然而,它仍然缺乏强大的RxJava2实现,如链接请求、平面图等。RxJava似乎主要用于业务逻辑,但事实上,我看到很多公司使用带有附加功能/库的UI的RxJava。这实际上使LiveData在表示逻辑中变得无关紧要。因此,我想知道LiveData在表示逻辑(在ViewModel中使用它(方面是否比RxJava更好/更干净。展望未来,你有什么建议?
RxJava对LiveData来说既不好也不差,它是不同的。Android架构组件旨在为Android开发人员提供一个模型架构模式。因此,如果您对LiveData感到满意,请使用它,或者如果您对RxJava感到满意,则使用它。您可以使用这两个库执行所有操作。尽管RxJava确实包含许多语法糖,但使用Livedata也可以实现这一点。
我认为您可以同时使用RxJava和LiveData。RxJava将使用到Model层下,将其用于请求并从服务器或本地数据库接收数据。
然后LiveData将注册到Activity/Fragment,因为有了LiveData,您可以轻松处理Activity/Fraction生命周期,而且它是为此目的而设计的。