我在同一代码块中运行两个异步任务,两个任务的doInBackGround部分同时运行,这导致了问题。根据下面链接的文章,在android 1.5中,异步任务是根据执行顺序自动排队的,但这个功能在android 1.6中被删除了。我找到的所有异步任务队列资源都提倡使用threadPool,但这只适用于honeycomb。有什么正确的方法来处理这个问题吗?
文章:AsyncTask的并行执行
AsyncTask.get()将导致调用线程阻塞执行并等待它完成,您可以这样做:
myAsyncTask1.execute();
myAsyncTask1.get();
myAsyncTask2.execute();
这将保证第二个AsyncTask在第一个完成后执行,记住AsyncTask.get()阻塞线程执行,所以如果你在UI线程中调用这个,你可能会得到ANR异常。