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());
然后使用执行者的等待终止
,以等待两个任务完成