我在同一代码块中运行两个异步任务,并且两个任务的 doInBackGround 部分同时运行,这导致了问题。根据下面链接的文章,在 android 1.5 中,异步任务会按执行顺序自动排队,但此功能在 Android 1.6 中已被删除。我发现的所有异步任务队列资源都提倡使用 threadPool,但这仅适用于 Honey Comb。关于处理此问题的正确方法有什么建议吗?
最佳答案
AsyncTask.get()将导致调用线程阻塞执行并等待它完成,你可以这样做:
myAsyncTask1.execute();
myAsyncTask1.get();
myAsyncTask2.execute();
这将保证第二个 AsyncTask 在第一个 AsyncTask 完成后执行,请记住 AsyncTask.get() 会阻止线程执行,因此如果您在 UI 线程中调用它,您可能会收到 ANR 异常。
关于android - 在 Android 1.6 中对多个异步任务进行排队,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7911333/