【发布时间】:2013-05-26 06:58:38
【问题描述】:
在我的 android 活动中,我有一个 asynctask 可以下载某些 url 的 HTML 内容。但是,如果网站有问题,它(doInbackground()) 只会将字符串“error”返回给 onPostExecute()。 onPostExecute 方法检查返回的字符串。如果返回的字符串不是“错误”,那么它会做一些其他工作,否则我希望它为另一个 url 执行异步任务。
这是一件好事吗?
这里是 AsyncTask 代码:
private class DataLoader extends AsyncTask<URL,Integer,String>{
@Override
protected void onPreExecute(){
//some Stuff
}
@Override
protected String doInBackground(URL... url) {
try {
Document d = Jsoup.connect(url[0].toString()).timeout(0).get();
String docString = d.toString();
return docString;
} catch (Exception e) {
e.printStackTrace();
return "error";
}
}
@Override
protected void onPostExecute(String result){
if(!(result == "error")){
//Process the result
}
else{
DataLoader g = new DataLoader();
try {
g.execute(new URL("http://workingexample.com/"));
} catch (Exception e1) {
e1.printStackTrace();
}
}
}
}
【问题讨论】:
-
你认为调用另一个 asynctas 有什么好处吗?您可以尝试连接 doinbackground 中的其他链接
-
连接是什么意思?我无法得到它。
-
您可以在同一个 doInBackground 本身中执行此操作..为什么您需要再次调用 AsyncTask 来执行此操作..发布您的 AsyncTask 代码..
标签: java android android-asynctask