网络访问下降时,如何停止运行进度对话框?
-
09-10-2019 - |
题
我有一个应用程序,该应用程序访问网站以获取XML进行处理。此过程在一个单独的线程中,当我有3G或WIFI可用时工作正常。我也有在实际运行线程之前检查信号的代码,因此不会尝试 没有连接性.
在测试期间,我走进了一栋阻塞所有信号的建筑物,因此我在外面有信号时开始了该过程,但是当我进入信号时,信号下降了,我 进度对话 只是继续运行,我不得不手动关闭程序才能使其恢复。
是否有一个很好的方法来处理此操作,而无需用户在这种情况发生时手动关闭应用程序?
解决方案
向您的超时参数提供 HttpClient
并捕获sockettimeoutexception
HttpParams httpParams=new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpParams, 5000);
HttpConnectionParams.setSoTimeout(httpParams, 5000);
HttpClient httpClient=new DefaultHttpClient(httpParams);
try {
httpClient.execute(new HttpGet("http://myserver.xml"));
}
catch(SocketTimeoutException ex){
//Perform Timeout i.e. cancle progress dialog
}
catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
不隶属于 StackOverflow