在我的 android 活动中,我有一个 asynctask 可以下载一些 url 的 HTML 内容。但是,如果网站有问题,它(doInbackground()) 只会将字符串“error”返回给 onPostExecute()。onPostExecute 方法检查返回的字符串。如果返回的字符串不是“错误”,那么它会做一些其他工作,否则我希望它为另一个 url 执行 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();
}
}
}
}