Android 在多个并行异步任务完成运行后,如何执行指令?

Android 在多个并行异步任务完成运行后,如何执行指令?,android,android-asynctask,Android,Android Asynctask,我希望同时执行两个异步任务,如下所示: new FetchProjetsTask().execute(projets.getId()); new FetchDashBoardsTask().execute(dashBoards.getId()); 为了执行其他指令,我如何等待它们都完成? (我正在寻找一种类似于onPostExecute的方法,但适用于多个AsyncTask)如果您不想将您的头放在像RxJava和Executors/Futures这样的新域中,您可以创建新的AsyncTask

我希望同时执行两个异步任务,如下所示:

new FetchProjetsTask().execute(projets.getId());
new FetchDashBoardsTask().execute(dashBoards.getId());
为了执行其他指令,我如何等待它们都完成?

(我正在寻找一种类似于onPostExecute的方法,但适用于多个AsyncTask)

如果您不想将您的头放在像
RxJava
Executors/Futures
这样的新域中,您可以创建新的
AsyncTask
并以阻塞方式调用这两个域

doInBackground() {
    Result resultProjects = new FetchProjetsTask().execute(projets.getId()).get();
    Result resultDashboards= new FetchDashBoardsTask().execute(dashBoards.getId()).get();
    // continue with necessary logic
}

请注意,
get()
。但是,如果您不需要使用两个任务的结果来完成,您可以使用闩锁来实现解决方案,就像这里一样

我的想法是利用使用

new FetchProjetsTask().executeOnExecutor(yourExecutor, projets.getId());
new FetchDashBoardsTask().executeOnExecutor(yourExecutor, dashBoards.getId());
然后使用执行者的
等待终止
,以等待两个任务完成