В приложении есть два таймера. Первый после старта работает нормально, щелкает раз в секунду, отрабатывает игровую логику.
GameTimer = new Timer();
gtTask = new GameTimerTask();
gtTask.setGame(this);
GameTimer.schedule(gtTask, 0, 1000);
Пытаюсь запустить второй таймер
KrabSupTimer = new Timer();
KrabSupTimer.schedule(new TimerTask() { // Определяем задачу
@Override
public void run()
{
// Вернем к жизни краба
CatSupMan = false;
KrabSupTimer.cancel();
}
}, 0L, 20L * 1000);
По идее должна выдерживаться пауза в 20 секунд. Но, почему-то переменная CatSupMan обнуляется моментально.
Вопрос, в чем может быть проблема?
З.Ы.Ж. Не может ли помочь переделка кода на использование ScheduledThreadPoolExecutor?
Если обратиться к официальным докам, то увидим
public void schedule(TimerTask task,
long delay,
long period)
Schedules the specified task for repeated fixed-delay execution, beginning after the specified delay. Далее опущено.
delay - отсрочка задания.
period - период выполнения.
У вас, как видно delay = 0.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости