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