Мы хотим запустить задачу каждые 1000 секунд (скажем).Что должен делать Timertask.scheduleAtFixedRate, если часы меняются?
Таким образом, мы имеем
timer.scheduleAtFixedRate(task, delay, interval);
В основном, это работает отлично. Однако это встроенная система, и пользователь может изменять часы реального времени. Если они настроили его на время в прошлом после того, как мы настроили таймер, кажется, что таймер не выполняется до исходной даты/времени в реальном времени. Поэтому, если они вернут его на 3 дня, таймер не будет выполняться в течение 3 дней :(
Является ли это допустимым поведением или дефектом в библиотеке Java? Oracle javadocs, похоже, ничего не говорит о зависимости или не на стоимости базового системного тактового сигнала.
Если это допустимо, как мы заметили это изменение времени и перепланировать наши таймеры?
если вы установите время вперед 3 дня, оно выполняет бесконечность (не совсем, но вы знаете, что я имею в виду) раз, пытаясь догнать !! – pstanton