2

Strangley、私AsyncTaskは実行しますが、またはしonPreExecuteません。Logcatには、問題が発生していることを示すエラーやメッセージはありません。doInBackground()onPostExecute()

class LocationTask extends AsyncTask<String, Void, String>{

    @Override
    protected void onPreExecute() {
        super.onPreExecute();
        Log.d(TAG, "onPreExecute============");
    }

    @Override
    protected String doInBackground(String... urls) {
        Log.d(TAG, "doInBackground============");
        Log.d(TAG, "urls[0]:" + urls[0]);
        return "test";
    }

    @Override
    protected void onPostExecute(String result){
        // TODO Auto-generated method stub
        super.onPostExecute(result);
        Log.d(TAG, "onPostExecute============");
    }
}

public class CsLocationTaskTest extends AndroidTestCase {

    public void testExecute(){
        LocationTask task = new LocationTask();
        task.execute("my_test_url", null);
    }
}

ご覧のとおり、これAsycTaskは特別なことではありdoInBackgroundませonPostExecuteんが、テストケースと私の両方で呼び出されていませんActivity。何が起こったのかわかりません。何が悪いのか理解させてください。ありがとう。

4

1 に答える 1

0

AsyncTaskのサブクラスである必要がありCsLocationTaskTestます。また、あなたは必要ありませんnull

開発ドキュメントによると:

"AsyncTask must be subclassed to be used. The subclass will override at least one method (doInBackground(Params...)), and most often will override a second one (onPostExecute(Result).)"

で見つかりました:http://developer.android.com/reference/android/os/AsyncTask.html

これを試して:

 public class CsLocationTaskTest extends AndroidTestCase {

    public void testExecute(){
        LocationTask task = new LocationTask();
        task.execute("my_test_url");
    }

    class LocationTask extends AsyncTask<String, Void, String>{

    @Override
    protected void onPreExecute() {
        super.onPreExecute();
        Log.d(TAG, "onPreExecute============");
    }

    @Override
    protected String doInBackground(String... urls) {
        Log.d(TAG, "doInBackground============");
        Log.d(TAG, "urls[0]:" + urls[0]);
        return "test";
    }

    @Override
    protected void onPostExecute(String result){
        // TODO Auto-generated method stub
        super.onPostExecute(result);
        Log.d(TAG, "onPostExecute============");
    }
}


}
于 2012-08-14T00:48:21.643 に答える