我遇到 Retrofit 和 Realm 与 RxJava 的问题:
我使用Observable.just(realm.copyFromRealm(realm.where(FooBar.class).findAll()))
可以观察到一个境界,并使用mFooBarService.getFooBars()
进行改造观察。
我希望将这些组合起来,首先是数据库(领域),然后是api(改造)发出数据。我通过对它们进行汇总来做到这一点:Observable.concat(realmObservable, apiObservable)
这很好用。我也可以停止我的api服务器,一切正常,因为数据库有数据。现在问题是:如果我在我的手机上关闭网络(wifi,移动数据)观察者没有收到数据。我以为观察者首先收到数据库数据,然后是超时或连接错误?相反,我只会收到错误。
提前谢谢!
修改
好的,我试着澄清一下我的意思
如果我有网络连接但服务器已关闭,它看起来像这样:
realmObservable.concat(apiObservable)
-----A---B---C---D---|---ERROR-------->
所以我得到了数据,然后出现了错误
但是当服务器关闭时,它看起来也是如此,但我只得到一个错误而不是数据
我希望你现在了解我。
答案 0 :(得分:0)
您正在从Retrofit获取onError调用,而不是来自Realm。你的Realm + Retrofit串联设计似乎很好,你在这里缺少的是没有互联网连接时Retrofit的错误处理。您可以通过注释所有Realm代码并仍然收到错误来验证这一点。
有两种方法可以解决这个问题,