没有调用Android,AsyncTask,onProgressUpdate和onPostExecute

时间:2013-06-22 01:10:39

标签: android android-asynctask

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();

3 个答案:

答案 0 :(得分:1)

在main / UI线程上执行任务:

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

的AsyncTask:

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);
    }
}

答案 1 :(得分:1)

我在项目中使用flurry jar,通过删除它并将其重新添加到项目中,每件事情都运行良好......我不知道为什么,但这就是为我解决的问题。

答案 2 :(得分:0)

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