我有一个应用程序,到一个网站抓取XML进行处理。这个过程在一个单独的线程中,当我有3G或WiFi可用时,它可以正常工作。我还有代码可以在实际运行线程之前检查信号,这样它就不会尝试使用,没有连接性,。
在我的测试中,我走进了一座阻止了所有信号的大楼,所以当我在外面的时候进程就开始了,并且有信号,但是当我进入信号下降和我的进度对话框继续运行的时候,我不得不手动关闭程序来恢复它。
如果出现这种情况,有什么好的方法可以解决这个问题,而不需要用户手动关闭应用程序?
发布于 2010-12-06 15:53:12
向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();
}https://stackoverflow.com/questions/4367936
复制相似问题