我有一个问题AsyncTask
。有时该doInBackground()
方法不会在 之后调用onPreExecute()
。
我知道这个问题被问了好几次,但给定的答案对我不起作用。
这是我的代码的一部分:
AsyncTask<Void, Void, Void> asyncTask = new AsyncTask<Void, Void, Void>(){
@Override
protected void onPreExecute() {
super.onPreExecute();
Log.e("AsyncTask", "onPreExecute");
}
@Override
protected Void doInBackground(Void... params) {
Log.e("AsyncTask", "doInBackground");
return null;
}
protected void onPostExecute(Void result) {
Log.e("AsyncTask", "onPostExecute");
};
};
if(Build.VERSION.SDK_INT >= 11)
asyncTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
else
asyncTask.execute();
如您所见,我检查 Android 版本是否 >= HoneyComb,如果为真,则在 Pool Executor 中执行任务。即使有那个“技巧”有时doInBackground()
也不会被调用。
有人有同样的问题或知道怎么回事吗?
谢谢