ユーザーがクリックしてダウンロードできるアイテムのリストがあります。私はこのコードを持っています:
//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 について読んだことがありますが、実装について少し混乱しています。