【问题标题】:Proper way to handle no network with Retrofit and RX-java使用 Retrofit 和 RX-java 处理无网络的正确方法
【发布时间】:2015-04-27 16:06:15
【问题描述】:

我想在调用我的 rx 改造服务之前检查手机是否连接到互联网。如果未连接,我想返回一个包含错误的虚假响应。

我以下面的解决方案结束,使用 defer(),但我认为它可以更好,有什么提示吗?

private Observable<Response> checkNetwork(Observable<Response> retrofitService) {
        return Observable.defer(new Func0<Observable<Response>>() {
            @Override
            public Observable<Response> call() {
                if (!isOnline()) {
                    return Observable.just(Response.error(R.string.error_no_network_label)));
                }
                return retrofitService;
            }
        });
    }

【问题讨论】:

    标签: android retrofit rx-java


    【解决方案1】:

    您可以像这里描述的那样实现改造 ErrorHandler: https://stackoverflow.com/a/21055979/2927901

    然后在 doOnError 方法或订阅者的 onError 方法中处理抛出的异常。

    【讨论】:

      猜你喜欢
      • 2023-03-11
      • 1970-01-01
      • 1970-01-01
      • 2014-10-02
      • 2017-10-03
      • 2016-10-29
      • 2016-03-03
      • 1970-01-01
      • 2016-11-07
      相关资源
      最近更新 更多