Livedata与Rxjava的区别

9

我必须花费大量时间学习和实现Livedata(特别是MediatorLivedata)在业务逻辑中,因为它有助于从各种来源添加数据。我已经成功地使用它,因为我可以将FCM、网络或RoomDatabase作为不同的来源添加到我的MediatorLivedata中,并在ViewModel中观察它。它实际上具有很好的可扩展性。然而,它仍然缺乏强大的RxJava2实现,例如良好的请求链接、flat map等。似乎RxJava主要用于业务逻辑,但事实上,我看到很多公司在UI中使用了RxJava并带有其他功能/库。这使得LiveData在演示逻辑中变得无关紧要。因此,我想知道LiveData在演示逻辑中(在ViewModel中使用)是否比RxJava更好/更干净。您建议未来应该关注什么呢?


2个回答

2

RxJava与LiveData既不优于也不劣于,它们是不同的。 Android Architecture Components旨在为Android开发者提供一个模型架构模式。因此,如果您熟悉LiveData,请使用它;如果您熟悉RxJava,请使用它。您可以使用这两个库执行所有操作。 尽管RxJava包含大量的语法糖,但LiveData也可以实现相同的功能。


有任何示例吗?我真的很想看到ViewModel,因为我猜它将具有LD和RxJava代码。 - Fawwaz Yusran

2

我认为你可以同时使用RxJava和LiveData。RxJava可用于Model层,用于从服务器或本地数据库请求和接收数据。

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


1
你知道有哪些示例应用或者代码片段展示了LiveData和RxJava的Flowable的使用吗?我真的很想看到ViewModel,因为它将结合LD和RxJava(对吧?)。 - Fawwaz Yusran

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接