除非在线程池中的两个asyctask完成它们的执行之后再进行处理

时间:2015-08-26 14:54:36

标签: java android multithreading android-asynctask

我使用{{1}}并行运行两个异步任务。

让我们将task1和task2并行运行,现在只有在task1和task2完成异常时才会调用task3。是否有可能知道任务task1和task2何时完成工作?

1 个答案:

答案 0 :(得分:0)

简单的答案是肯定的。当asyncTask完成其工作时,它调用onPostExecute。所以你可以有两个布尔值

boolean taskOneDone=false;
boolean taskTwoDone=false;

//inside taskOne
@Override onPostExecute(Object obj){
   ...
   taskOneDone=true;
}

//inside taskTwo
@Override onPostExecute(Object obj){
   ...
   taskTwoDone=true;
}

然后在你启动taskThree之前,你应该检查

if(taskOneDone && taskTwoDone) executeTaskThree();