在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();
最佳答案
在主/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);
}
}
关于Android、AsyncTask、onProgressUpdate 和 onPostExecute 未被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17246379/