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