如何在Android AsyncTask中使用ExecutorService?

我需要执行一些AsyncTask然后收集所有结果,合并然后将最终结果返回给我的用户。

我正在寻找一种在Android中管理多个AsyncTask的方法。 我正在考虑使用Java Concurrency包中的ExecutorService ,但我坚持,因为ExecutorService接受Runnables或Callables。 为了确定我的要求,我可以使用

ExecutorService.invokeAll((Collection<? extends Callable> tasks)

只有当所有提交的任务都完成后, invokeAll()方法才会返回List>的列表,并且我可以从相应的Future获取每个任务的结果。

ExecutorService期望它不接受AsyncTask ,这一切都很好。

有没有其他方法可以使用AsyncTaskExecutorService或者如果您可以请推荐一种不同的方法。

创建一个AsyncTask并从doInBackground()开始你的线程。 完成后,收集,整合等数据并将其返回。 然后,您可以在onPostExecute使用它来更新UI。 启动太multithreading会占用内存,因此您应该考虑它们是否真的需要并行运行。