我想在调用我的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
https://stackoverflow.com/a/21055979/2927901