Я использую класс java.util.timer, и я пишу этот код
Timer myTimer = new Timer();
MyTask myTask = new MyTask() //MyTask extends TimerTask
Date alarmDate = new Date();
myTimer.schedule(myTask, alarmDate);
и выполнить несколько задач в определенное время, используя этот метод
но я должен остановить некоторые из них. Как я могу это сделать методом отмены "myTask.cancel (Дата)"??
TimerTask.cancel()
принимает аргументов. Просто позвони
myTask.cancel();
Обратите внимание на следующий комментарий в документах API для Timer:
Java 5.0 представила пакет java.util.concurrent, и одна из утилит параллелизма в нем - ScheduledThreadPoolExecutor, который является пулом потоков для многократного выполнения задач с заданной скоростью или задержкой. Это эффективно более универсальная замена комбинации Timer/TimerTask, поскольку она позволяет несколько потоков обслуживания, принимает различные единицы времени и не требует подкласса TimerTask (просто реализовать Runnable). Настройка ScheduledThreadPoolExecutor с одним потоком делает его эквивалентным таймеру.
Хотя это может быть немного больше кода для реализации, он обеспечивает лучший контроль над представленными задачами.