gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:41:49 26 4
gpt4 key购买 nike

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

我使用 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 - 使用 Retrofit 和 RX-java 处理无网络的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28722817/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com