在我的android活动中,我有一个asynctask下载某些url的HTML内容。但是,如果网站出现问题,它(doInbackground())只会将字符串“error”返回给onPostExecute()。 onPostExecute方法检查返回的字符串。如果返回的字符串不是“错误”,那么它会执行一些其他工作,我希望它执行另一个url的asynctask。我们可以在onPostExecute()中执行AsyncTask吗?
这是一件好事吗?
这里是的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中的另一个链接 – stinepike
连接的含义是什么?我无法得到它。 – AndroidMan
你可以在同一个doInBackground本身做到这一点。为什么你需要再次调用AsyncTask来做到这一点..post你的AsyncTask代码.. – bakriOnFire