【发布时间】:2019-04-14 18:34:21
【问题描述】:
我正在使用 Room 进行数据库管理,但在处理实时数据时我对使用什么感到困惑。目前,为了管理实时数据,我正在使用Flowable,我对此非常满意。我感到困惑的是我也可以使用LiveData 来执行相同的操作。
为了提供一些上下文,这是我查询数据和更新视图的方式。
流动性
addDisposable(userDao().getUsersFlowable()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(users -> userAdapter.setUsers(users)));
实时数据
userDao().getUsersLiveData()
.observe(this, users -> {
userAdapter.setUsers(users)
})
我对@987654326@ 不太熟悉,但就我的研究而言,它是一种具有生命周期意识的观察者模式,这意味着如果 UI 未处于活动状态,我将停止通知。也就是说,正如您在我的Flowable 代码中看到的那样,我将它添加到CompositeDisposable 中,并且我将在我的onDestroy() 方法中进行处理。
因此,当我可以使用 RxJava 管理所有内容时,我不明白为什么要使用 LiveData,为了方便,它有很多运算符。
那么在使用 Room 时,我应该何时使用 LiveData 以及何时使用 RxJava。非常感谢反映给定场景的答案,但也欢迎其他用例。
我关注了When to use RxJava in Android and when to use LiveData from Android Architectural Components?,但它太宽泛了,我无法得到具体的答案
【问题讨论】:
标签: rx-java rx-java2 android-room observer-pattern android-livedata