我正在开发一个使用 AsyncTask 读取网页的Android应用程序。我有2个AsyncTask类,它们读取不同的页面,一个内部服务,其他没有。在这两种情况下 url connection 方法包含在 try-catch 块中,但它们的catch块不同(第二个 AsyncTask类中缺少 TimeoutException catch块,尝试过手动捕获或抛出但失败了。)即使他们的连接方法相同,他们的 try-catch 块也不同,但我需要在两个任务中捕获 TimeoutException 。 这是我的第一个AsyncTask类的一部分
try {
url=new URL(link);
huc=(HttpURLConnection) url.openConnection();
huc.setRequestMethod("GET");
huc.setDoOutput(true);
huc.setReadTimeout(READ_TIMEOUT);
huc.connect();
dothework();
} catch (IOException e) {
e.printStackTrace();
} catch (TimeoutException e) {
showErrorMsg();
e.printStackTrace();
}
和第二个AsyncTask类的一部分
try {
url = new URL(link);
HttpURLConnection huc=(HttpURLConnection) url.openConnection();
huc.setReadTimeout(5000);
huc.setDoOutput(true);
huc.setRequestMethod("GET");
huc.connect();
}catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
Toast.makeText(ctx, e.getMessage(), Toast.LENGTH_LONG).show();
e.printStackTrace();
}
答案 0 :(得分:0)
我不确定,但我认为HttpConnection已经是AsyncTask。所以,我认为你正在调用另一个AsyncTask。