我有两个异步任务,每个任务都在一个单独的类中,我可以在主线程中调用它们,只需使用:
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。