【发布时间】:2013-07-05 13:00:31
【问题描述】:
首先,很抱歉英语不好。我有 android 2.3,所以有“Real”并行 AsyncTask 而不是顺序执行(android 3.0 和更高版本)。 我有几个 AsyncTask,每个都执行 onPostExecute() 回调(我知道它将在 UI 线程中执行)。 假设我只有 2 个并行 AsyncTask,当第一个任务完成时,回调 onPostExecute() 将被调用。 是否有可能,当 onPostExecute()(来自第一个 AsyncTask)方法在 UI 线程上运行时,第二个任务正在调用其 onPostExecute() 方法,从而中断第一个 AsyncTask 的 onPostExecute() 的当前执行?
// 已更新 我现在用代码解释一下:
// AsyncTask1
onPostExecute(Result result) {
activity->processResult1(result);
}
// AsyncTask2
onPostExecute(Result result) {
activity->processResult2(result);
假设 AsyncTask1 已经完成了它的工作,并且 processResult1() 是一个运行时间很长的方法: 当我们在 UI 线程上执行 processResult1() 时,AsyncTask2 完成了它的工作。 现在会发生什么?
- processResult1() 将被 processResult2() 中断
- processResult2() 一直等到 processResult1() 结束
【问题讨论】:
标签: java android android-asynctask