首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从另一个AsyncTask调用AsyncTask

从另一个AsyncTask调用AsyncTask
EN

Stack Overflow用户
提问于 2011-04-25 23:19:56
回答 4查看 24.3K关注 0票数 29

在我的AsyncTask的某个点上,在完成一些验证之后,我需要产生另一个线程来做一些其他工作。因此,我希望在这一点上有两个后台线程,每个线程都做自己的事情(大约2-3秒来执行)。这个想法是为了最大化像Atrix这样的双核处理器的性能。

是否可以创建另一个异步任务并从第一个异步任务开始执行?有没有人能推荐一种更好的方法呢?

谢谢!

编辑:我想知道第二个任务的publishProgress()会做什么……因为它不是从活动开始的?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-04-25 23:52:33

是否可以创建另一个异步任务并从第一个异步任务开始执行?

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

我想知道第二个任务中的publishProgress()会做什么……因为它不是从活动开始的?

它做的是完全相同的事情,因为您是从UI线程启动它的。

票数 57
EN

Stack Overflow用户

发布于 2011-04-26 00:22:58

如果你正在寻找一种执行多个异步任务的机制,从3.0开始,它支持一种名为executeOnExecutor的方法,该方法允许你在异步任务管理的线程池中并行调度任务。

票数 10
EN

Stack Overflow用户

发布于 2011-04-25 23:48:38

在与主线程通信以处理UI更改时,AsyncTask对于执行一些后台工作很有用。看起来这不是你的情况。

此外,必须从主线程执行AsyncTask。从AsyncTask参考中:

要使该类正常工作,必须遵循以下几条线程规则:

必须在UI thread.

  • execute(Params...)上创建
  • 任务实例必须在UI线程上调用。

你可以看看这个article,看看什么最适合你。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5779894

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档