我想在调用我的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;
}
});
}发布于 2015-02-26 00:15:04
您可以像这里描述的那样实现改进的ErrorHandler:https://stackoverflow.com/a/21055979/2927901
然后处理doOnError方法或订阅者的onError方法中抛出的异常。
https://stackoverflow.com/questions/28722817
复制相似问题