Android 处理loopj中的超时异常

Android 处理loopj中的超时异常,android,android-async-http,loopj,Android,Android Async Http,Loopj,我在处理asynchttpclient @Override public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) { closeProgressDialog(); Log.e("DB", String.valueOf(error)); Log.e("DB", String.valueOf(error.getCause() instance

我在处理
asynchttpclient

@Override
public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) {

    closeProgressDialog();
    Log.e("DB", String.valueOf(error));
    Log.e("DB", String.valueOf(error.getCause() instanceof ConnectTimeoutException));
}
第一个日志给出响应
cz.msebera.android.httpclient.conn.ConnectTimeoutException:Connect to/192.168.0.107:80超时

而第二个日志给出了
null
false

我想处理超时异常,该如何处理?

您的第二次日志操作基于

error.getCause()
它为null或不是
ConnectTimeoutException
,而在您的第一个日志操作中,您直接使用方法参数中给出的
Throwable

因此,我建议使用
error
而不是
error.getCause()
来处理
ConnectTimeoutException

Log.e("DB", String.valueOf(error instanceof ConnectTimeoutException)); // --> Should be true now

我建议增加超时时间

client.setTimeout(15000);
然后重写所有onFailure方法

@Override
public void onFailure(Throwable error, String content) {
 if ( error.getCause() instanceof ConnectTimeoutException ) {
    System.out.println("Connection timeout !");
 }
}
我希望这能解决问题