AsyncTask 主要作为运行定义明确的计算或任务的解决方案。经典示例是作为 AsyncTask 的下载器,它被提供一个 URL,将其进度更新到 UI,并在完成时退出。在 AsyncTask 运行时,是否有一种合理(不太老套)的方式来添加/更改 AsyncTask 的输入?也许设置 AsyncTask 必须处理的项目队列,然后从主应用程序更改该队列......?例如,这会“破坏” AsyncTask 模型吗?
问问题
134 次
2 回答
2
是的你可以。AsyncTask 是一个已经嵌入到 UI 线程的通信机制的线程。但是,这种通信只是从AsyncTask
到UI
而不是在您需要的相反方向上。
此外,Android 中的最大同时数AsyncTask
在几个 API 版本中为 1。
要实现与您的线程安全通信UI
,AsyncTask
您将需要使用Handler
或BlockingQueue
类。
就个人而言,我不会这样做。我会直接使用 aThread
和 a Handler
or BlockingQueue
。
问候。
于 2012-11-29T11:17:32.153 回答
2
是的,您可以通过从由您的活动管理的同步集合中获取 doInBackground() 方法中的对象来简单地做到这一点。
于 2012-12-01T07:23:21.600 回答