我有一个用户可以点击下载的项目列表。我有这个代码:
//Maintained this in my ListAdapter class so that if user clicks on cancel download i can do:
// tasks.get(info.getFieldID()).cancel(true);
public static Map<String, Future<Object>> tasks = new HashMap<String, Future<Object>>();
Future f = downloadExecutor.submit(new Callable<Object>() {
// do downloading.
}
tasks.put(key,f);
当用户通过调用 tasks.get(key).cancel(true); 点击取消时,我试图取消相应的下载;
但我的任务并没有被取消。
几个问题:
通过维护适配器类中的未来对象列表,我做错了什么吗?
当用户单击按钮时,我应该如何取消任务?
另外我怎么知道任务已被取消?
我已经阅读了有关 ExecutorService 的信息,但我对实现有点困惑。