在改装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我扔在拦截器。

+0

顺便说一句,你正在建设一个新的请求时执行不必要的对象分配。只需调用'chain.proceed(chain.request())'。 –

+0

@awonderer - 这种方法只是检查网络连接,还是检查网络连接? –

找到解决方案。

OfflineException类必须继承IOException