Я пытался отменить Timer.schedule () при запуске нового. Потому что мне нужно 1 расписание сразу. Но я получаю это исключение
Exception in thread "AWT-EventQueue-0" java.lang.IllegalStateException: Timer already cancelled.
Как вы видите, таймер уже отменен, как я могу предотвратить это?
Я попробовал этот код, но он все еще не работает, проверьте пожалуйста:
Примечание: все в этом коде работает нормально, кроме 2-й строки
Public void startTimer(byte h, byte m) {
timer.cancel();//cancel the Timer whenever I start a new one
Date d = new Date();
d.setHours(h);
d.setMinutes(m);
d.setSeconds(0);
UserInterface.setAlarmTime(h, m);
timer.schedule(new Alarm(), d);
Если я уберу вторую строку, этот код даст мне таймер, но я не отменю старый таймер, поэтому, когда я вызываю этот метод, я получаю больше таймеров. И это не то, что мне действительно нужно.
Так как я могу предотвратить это исключение? В классе Timer нет методов, которые бы сообщали мне, есть ли в расписании Timer, уже проверили его. Поэтому, пожалуйста, помогите мне.