我需要执行一些 AsyncTask
s 然后收集他们所有的结果,合并,然后将最终结果返回给我的用户。
我正在寻找一种方法来管理多个 AsyncTask
在 Android 中。我正在考虑使用 ExecutorService
来自 Java 并发包,但我卡住了,因为 ExecutorService
仅接受 Runnables 或 Callables。为了确定我的要求,我可以使用
ExecutorService.invokeAll((Collection<? extends Callable<T>> tasks)
invokeAll()
方法将返回 List<Future><V>>
的列表只有当所有提交的任务都完成时,我才能从相应的 Future
中获取每个任务的结果。 .
ExecutorService
一切顺利期待它不接受 AsyncTask
的事实.
还有其他方法可以使用AsyncTask
吗?和 ExecutorService
或者,如果您可以,请推荐一种不同的方法。
最佳答案
创建一个 AsyncTask
并从 doInBackground()
启动您的线程。完成后,收集、合并等数据并将其返回。然后您可以在 onPostExecute
中使用它来更新 UI。启动太多线程会消耗内存,所以你应该考虑它们是否真的需要并行运行。
关于android - 如何将 ExecutorService 与 Android AsyncTask 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9492953/