android – 使用Retrofit和RX-java处理无网络的正确方法

我想在调用我的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;
            }
        });
    }

解决方法

您可以实现改进的ErrorHandler,如下所述:
https://stackoverflow.com/a/21055979/2927901

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

相关文章

这篇“android轻量级无侵入式管理数据库自动升级组件怎么实现...
今天小编给大家分享一下Android实现自定义圆形进度条的常用方...
这篇文章主要讲解了“Android如何解决字符对齐问题”,文中的...
这篇文章主要介绍“Android岛屿数量算法怎么使用”的相关知识...
本篇内容主要讲解“Android如何开发MQTT协议的模型及通信”,...
本文小编为大家详细介绍“Android数据压缩的方法是什么”,内...