mus*_*off 6 observer-pattern rx-java rx-java2 android-room android-livedata
我正在使用Room进行数据库管理,而在处理实时数据时该使用什么却感到困惑。现在,要管理我正在使用的实时数据,我对此Flowable非常满意。我感到困惑的是,我也可以使用LiveData它来执行相同的操作。
为了提供一些背景信息,这是我查询数据和更新视图的方式。
addDisposable(userDao().getUsersFlowable()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(users -> userAdapter.setUsers(users)));
Run Code Online (Sandbox Code Playgroud)
userDao().getUsersLiveData()
.observe(this, users -> {
userAdapter.setUsers(users)
})
Run Code Online (Sandbox Code Playgroud)
我不太熟悉LiveData,但是就我的研究而言,它是一个观察者模式,它也知道生命周期,这意味着我将停止通知UI是否未处于活动状态。就是说,正如您在我的Flowable代码中看到的那样,我将其添加到其中CompositeDisposable,并将在我的onDestroy()方法中进行处理。因此,我看不出为什么我应该使用LiveData什么时候可以用进行管理RxJava,因为为了方便起见,该操作有很多运算符。
所以我应该何时使用,LiveData以及何时RxJava使用Room。反映给定方案的答案非常受赞赏,但也欢迎其他用例。
我遵循了何时在Android中使用RxJava以及何时从Android Architectural Components中使用LiveData?,但范围太广,我无法具体回答我的情况
通常与视图一起工作,使用 LiveData 通常是好的。它自动管理订阅,与DataBinding 库配合得非常好。它是一种数据持有者,与数据流(Rx 概念)相反,它具有生命周期意识。
在其他情况下,我建议使用 RxJava,它具有用于转换和并发的强大运算符链。希望它对您的理解有所启发。
| 归档时间: |
|
| 查看次数: |
824 次 |
| 最近记录: |