我有一个完成DownloadTask implements Runnable{private String taskId...任务的ThreadPoolExecutor,我需要在任何时候都有可能从ThreadPoolExecutor队列中获取定义的任务,例如,使用任务id:
mDownloadTasksPool.getQueue();遍历队列和获取定义元素的最佳方法是什么?
可以有一个包含所有重复任务的列表,但它看起来不是很优雅。
发布于 2013-02-11 23:18:20
将你的Runnables子类化,为taskID提供一个getter (如果这是你的关键)。创建并发映射,将taskID映射到放入队列中的Runnable。继承你的ThreadPoolExecutor。在beforeExecute中,您可以从映射中删除当前任务,因为它不再位于队列中。您可能希望将Runnable强制转换为您的自定义类,以使用该taskID getter。
https://stackoverflow.com/questions/14814951
复制相似问题