Android:是否可以与AsyncTask交互/更新AsyncTask?

时间:2012-11-29 10:55:08

标签: android android-asynctask

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

2 个答案:

答案 0 :(得分:2)

是的,你可以。 AsyncTask是一个已经在UI线程的通信机制中添加的线程。但是,此通信仅从AsyncTaskUI,而不是您需要的反向。

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

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

就个人而言,我不会这样做。我会直接使用ThreadHandlerBlockingQueue

问候。

答案 1 :(得分:2)

是的,您可以通过从您的活动管理的同步集合中获取doInBackground()方法中的对象来完成此操作。