在改装2中检测'没有互联网'连接错误
问题描述:
如何检测到改装2没有互联网连接错误?在改装2中检测'没有互联网'连接错误
我在改造1中做的事情是实现Client接口并在执行时执行连接检查(请求请求)。
我试图在改造2这是什么:
public class RequestInterceptor implements Interceptor {
final ConnectivityManager connectivityManager;
@Inject
public RequestInterceptor(ConnectivityManager connectivityManager) {
this.connectivityManager = connectivityManager;
}
@Override
public Response intercept(Chain chain) throws IOException {
if (isConnected()) {
throw new OfflineException("no internet");
}
Request.Builder r = chain.request().newBuilder();
return chain.proceed(r.build());
}
protected boolean isConnected() {
NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();
return networkInfo != null && networkInfo.isConnectedOrConnecting();
}
}
我能够通过添加一个try-catch块与同步改造执行抓住它,但不能与其中返回的错误为onFailure处的参数异步(呼叫电话,Throwable t)。应用程序崩溃与OfflineException我扔在拦截器。
答
找到解决方案。
我OfflineException
类必须继承IOException
顺便说一句,你正在建设一个新的请求时执行不必要的对象分配。只需调用'chain.proceed(chain.request())'。 –
@awonderer - 这种方法只是检查网络连接,还是检查网络连接? –