【发布时间】:2018-07-11 08:28:26
【问题描述】:
我有一个返回 Observable 的方法,如下所示:
open fun get(): Observable<Response> {
return if (condition)
getDataFromApi()
else
getDataFromDb()
}
订阅如下:
get()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(/*a object of class extending DefaultObserver*/)
当调用 getDataFromDb() 并在一段时间后根据条件调用 getDataFromApi() 时,我遇到了这个问题。对于第一次调用,它工作正常,但在第二次调用 onNext 时,会使用来自 getDataFromDb() 的旧数据响应多次调用 onNext。请让我知道我做错了什么。我对 RxJava 有点陌生。
【问题讨论】:
-
尝试使用 Single
-
你怎么称呼这些?您是否检查过您的查询是否有可能从相应的数据源(RxJava 之外)过滤您想要的项目?
-
getDataFromApi() 调用 Retrofit 接口中的方法, getDataFromDb() 使用 RoomDao。然后在 ViewModel 中为片段调用它。
标签: android kotlin rx-java2 rx-kotlin2