私のAndroidアクティビティには、いくつかのURLのHTMLのものをダウンロードするasynctaskが1つあります。ただし、Web サイトに問題がある場合、it(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();
}
}
}
}