禁用网络将停止从领域发出数据



我在使用 RxJavaRetrofitRealm 中遇到了一个问题:我有一个使用 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--------> 所以我得到数据,然后是一个错误
但是当服务器关闭时,它看起来像上面这样,但我只收到错误而不是首先数据。
我希望你现在理解我。

您正在收到来自 Retrofit 而不是来自 Realm 的错误调用。您的 Realm + Retrofit 串联设计似乎很好,您在这里缺少的是没有互联网连接时 Retrofit 的错误处理。你可以通过注释所有 Realm 代码来验证这一点,但仍然收到错误。

有两种方法可以解决此问题,

  • 在进行改造之前检查互联网连接的可用性叫
  • 在改造中添加自定义错误处理

相关内容

  • 没有找到相关文章

最新更新