2

AsyncTask 主要作为运行定义明确的计算或任务的解决方案。经典示例是作为 AsyncTask 的下载器,它被提供一个 URL,将其进度更新到 UI,并在完成时退出。在 AsyncTask 运行时,是否有一种合理(不太老套)的方式来添加/更改 AsyncTask 的输入?也许设置 AsyncTask 必须处理的项目队列,然后从主应用程序更改该队列......?例如,这会“破坏” AsyncTask 模型吗?

4

2 回答 2

2

是的你可以。AsyncTask 是一个已经嵌入到 UI 线程的通信机制的线程。但是,这种通信只是从AsyncTaskUI而不是在您需要的相反方向上。

此外,Android 中的最大同时数AsyncTask在几个 API 版本中为 1。

要实现与您的线程安全通信UIAsyncTask您将需要使用HandlerBlockingQueue类。

就个人而言,我不会这样做。我会直接使用 aThread和 a Handleror BlockingQueue

问候。

于 2012-11-29T11:17:32.153 回答
2

是的,您可以通过从由您的活动管理的同步集合中获取 doInBackground() 方法中的对象来简单地做到这一点。

于 2012-12-01T07:23:21.600 回答