我在同一个代码块中运行了两个异步任务,并且两个任务的doInBackGround部分同时运行,这导致了问题。根据下面在android 1.5中链接的文章,Async Tasks按执行顺序自动执行,但此功能已针对Android 1.6删除。我找到的所有Async Task排队资源都主张使用threadPool,但这只适用于Honey Comb。有关正确处理此问题的方法的任何建议吗?
答案 0 :(得分:4)
AsyncTask.get()会导致调用线程块执行并等待它完成,你可以这样做:
myAsyncTask1.execute();
myAsyncTask1.get();
myAsyncTask2.execute();
这将保证第一个完成后执行第二个AsyncTask,请记住AsyncTask.get()阻止线程执行,所以如果你在UI线程中调用它,你可能会得到ANR异常。