是否让一个异步任务等待另一个任务完成



我有两个异步任务,每个任务都在一个单独的类中,我可以在主线程中调用它们,只需使用:

new RetrieveTask().execute();
new RetrieveTaskImageData().execute();

但我希望第一场比赛结束后再开始第二场比赛。

这是其中一个例子:

class RetrieveTask extends AsyncTask<String, Void,Void> {
private Exception exception;
protected Void doInBackground(String... urls) {
try {
//Code here
} catch (Exception e) {
this.exception = e;
} finally {
}
return null;
}
protected void onPostExecute() {
//
}
}

我们如何才能做到这一点?

编辑

我们可以使用new RetrieveTask().execute().getStatus()==..Finished吗?

谢谢

这将自动实现,因为除非调用executeOnExecutor,否则所有AsyncTask都在同一个线程上运行,因此其中两个不能同时运行。

我的主线程中有4个异步任务,其中2个任务中有if语句,如果其中一个工作,另一个停止。我为彼此删除了回调并执行了内部任务,对我来说很有效

您必须在第一个AsyncTask上实现接口,并且在PostExecute上它将回调到主线程。您需要对该重写回调方法调用第二个AsyncTask。

最新更新