2

doInBackgroundそれが何をするかを終えた後、onPostExecute呼び出されません。進行状況を公開しようとしてonProgressUpdateも、呼び出されません。

バックグラウンドでテキストをログに記録する以外は何もしない asyncTask を再作成しましたが、両方のメソッドが呼び出されません。

これが私のコードです

public class MyAsyncTask extends AsyncTask<Object, Integer, Void> {

@Override
protected Void doInBackground(Object... params) {
    Log.d("MyAsyncTask","doInBackground");
    publishProgress(1);
    return null;
}

@Override
protected void onPostExecute(Void result) {
    Log.d("MyAsyncTask","onPostExecute");
    super.onPostExecute(result);
}

@Override
protected void onProgressUpdate(Integer... values) {
    Log.d("MyAsyncTask","onProgressUpdate");
    super.onProgressUpdate(values);
}}

そして、これが私がそれを呼ぶ方法です

new MyAsyncTask().execute();
4

3 に答える 3

1

プロジェクトでflurry jarを使用していましたが、それを削除してプロジェクトに再度追加すると、すべてが正常に機能しました...理由はわかりませんが、それが解決しました。

于 2013-06-29T11:04:25.283 に答える
1

メイン/UI スレッドでタスクを実行します。

new MyAsyncTask().execute("Test");

非同期タスク:

public class MyAsyncTask extends AsyncTask<String, Integer, String> {

    protected void onPreExecute() {
        Log.d("MyAsyncTask","MyAsyncTask Started");
    }

    protected String doInBackground(String... params) {
        Log.d("MyAsyncTask",params[0] + " in background.");
        publishProgress(params[0]);
        return null;
    }

    protected void onProgressUpdate(Integer... values) {
        Log.d("MyAsyncTask","onProgressUpdate - " + values[0]);
    }

    protected void onPostExecute(String result) {
        Log.d("MyAsyncTask","onPostExecute " + result);
    }
}
于 2013-06-22T01:56:37.510 に答える