从另一个AsyncTask调用AsyncTask

Oce*_*lue 29 multithreading android

在我的AsyncTask的某个点上,经过一些验证后,我需要产生另一个线程来做其他工作.所以我现在想要两个后台线程,每个都做自己的事情(每个执行大约2-3秒).我们的想法是在Atrix等双核处理器上实现最佳性能.

是否可以创建另一个asynctask并从第一个执行它?谁能建议更好的方法呢?

谢谢!

编辑:我想知道第二个任务中的publishProgress()甚至会做什么...因为它不是从一个Activity开始的?

Wro*_*lai 57

是否可以创建另一个asynctask并从第一个执行它?

是的,但仅限于内部onProgressUpdate()onPostExecute()因为这些方法在UI线程上运行.因此,AsyncTask通过选择上面列出的两种方法之一,在UI线程上启动第二个.

我想知道第二个任务中的publishProgress()甚至会做什么...因为它不是从一个Activity开始的?

它完全相同,因为您是从UI线程启动它.


adv*_*tej 10

如果您正在寻找执行多个异步任务的机制,从3.0及更高版本它支持一个名为executeOnExecutor的方法,它允许您在由Async Task管理的线程池上并行调度任务.