2

私の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();
            }
                     }

    }
}
4

3 に答える 3