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

在主/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 回答
1

我在项目中使用了flurry jar,通过将其删除并将其重新添加到项目中,一切正常……我不知道为什么,但这就是为我解决的问题。

于 2013-06-29T11:04:25.283 回答
0

如果仍然相关:尝试 publishProgress(Integer.valueOf(1))

于 2013-06-29T08:23:59.247 回答