gpt4 book ai didi

rx-java - 房间 : LiveData or RxJava? 使用哪个

转载 作者:行者123 更新时间:2023-12-04 15:39:02 25 4
gpt4 key购买 nike

我正在使用 Room 进行数据库管理,但在处理实时数据时我对使用什么感到困惑。目前,我使用 Flowable 来管理实时数据我对它很满意吗?我感到困惑的是我可以使用 LiveData也做同样的操作。

为了提供一些上下文,以下是我查询数据和更新 View 的方式。

流动的

addDisposable(userDao().getUsersFlowable()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(users -> userAdapter.setUsers(users)));

实时数据
userDao().getUsersLiveData()
.observe(this, users -> {
userAdapter.setUsers(users)
})

我不太熟悉 LiveData ,但就我的研究而言,它是一种观察者模式,它也具有生命周期意识,这意味着如果 UI 未处于事件状态,我将停止通知。也就是说,正如您在我的 Flowable 中看到的那样代码,我将它添加到 CompositeDisposable我会在我的 onDestroy() 中处理方法。
所以我不明白为什么我应该使用 LiveData当我可以用 RxJava 管理一切时,为了方便起见,它有很多运算符。

那么我应该什么时候使用 LiveDataRxJava在使用 Room 时。非常感谢反射(reflect)给定场景的答案,但也欢迎其他用例。

我关注了 When to use RxJava in Android and when to use LiveData from Android Architectural Components? ,但它太宽泛了,我无法得到具体的答案

最佳答案

通常与 View 一起工作,使用 LiveData 通常是好的。它自动管理订阅,与 DataBinding library 配合得很好.它是一种数据持有者,与数据流(Rx 概念)相反,它具有生命周期意识。

在其他情况下,我建议使用 RxJava,它具有用于转换和并发的强大运算符链。希望它对您的理解有所启发。

关于rx-java - 房间 : LiveData or RxJava? 使用哪个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53255383/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com