注意:如果您已经在使用RxJava或Agera这样的库,那么您可以继续使用它们,而不是LiveData。但是当您使用它们或其他方法时,请确保您正确地处理了生命周期,以便在相关的LifecycleOwner停止时数据流暂停,并且在LifecycleOwner被销毁时数据流被销毁。您还可以添加android.arch.lifecycle:reActiveStreams工件,以便将LiveData与另一个reactive streams库(例如,RxJava2)一起使用。
上面的语句是从android developer页面复制的。这里它指定了如果你正在使用RxJava,你就不需要使用LiveData。因为两者都遵循可观察的模式。我想知道如何使用RxJava而不是LiveData来调用rest api。我试了很多,但是没有找到任何答案。如果有人帮助我解决这个问题,那将是非常好的。提前致谢
您可以使用这些方法将Publisher
转换为LiveData
,反之亦然。
>
LiveDataReActiveStreams.fromPublisher(publisher
--将为您提供LiveData
对象
LiveDataReActiveStreams.toPublisher(LifecycleOwner lifecycle,liveData
--将提供您的RXJava
Publisher
对象。
然后可以使用pub-sub
模式,只需订阅发布服务器
即可。
我正在探索新的Android架构组件,并希望将其实现到一个Android应用程序中。当我在iOS开发中使用MVVM时,我对MVVM非常了解。阅读了Google提供的Android Architecture Components guide:https://developer.Android.com/topic/libraries/Architecture/guide.html 我有几个问题...
我知道如何使用ViewModel,Repository和Room将数据从数据库传输到屏幕。但是如何使用POST方法实现登录活动。我需要从ViewModel或AuthorizationRepository创建LiveData isAuthorated吗?有人能展示在android架构组件中使用命令方法的示例吗?
谷歌的android架构组件教程中有一部分解释了如何抽象通过网络获取数据的逻辑。在其中,他们创建了一个名为NetworkBoundResource的抽象类,使用LiveData创建一个反应流,作为所有反应网络请求的基础。 根据我的理解,这门课的逻辑是: a)创建一个名为“result”的MediatorLiveData作为主要返回对象,并将其初始值设置为resource.loading(null)
问题内容: 我很难理解如何使用RxJava构建缓存。我的想法是我需要从内存缓存中获取数据或从数据库(dynamoDb)加载。但是,该缓存应该在片段和/或线程之间共享。因此,我需要返回当前正在运行但尚未完成的现有可观察对象。这使线程可以赶上而不做不必要的工作。我是RxJava的新手,所以这是我作为草图考虑的内容(为简洁起见,缺少一些代码): } 是否有更好的方法可以通过RxJava实现(对缓存策略不
我不知道在Android中使用RxJava和从Android体系结构组件中使用LiveData的原因,如果以代码的形式解释两者之间的差异,并提供示例,将会非常有帮助。