Android AlarmManager обрабатывает изменения летнего времени? - PullRequest
3 голосов
/ 04 декабря 2011

Я создаю приложение для будильника в Android. AlarmManager автоматически обрабатывает смену часов между летним и зимним временем или мне нужно управлять этим явно?

edit: Если будильник установлен там, где интервал повторения пересекает смену часов, будет ли этот будильник переназначен?

Ответы [ 2 ]

5 голосов
/ 25 октября 2012

В отличие от того, что в принятом ответе говорится, что я видел другое поведение в моем приложении, у меня есть задача, выполняемая ежедневно через несколько минут после полуночи.

После изменения летнего времени задание начало выполняться через несколько минут после 23:00, в результате чего задание вернуло неправильные результаты (задание проверяет текущую дату и соответственно запрашивает данные).

Так что мой ответ - да, вам нужно будет управлять этим явно.

РЕДАКТИРОВАТЬ: наша задача должна выполняться один раз в день в указанное время. Чтобы решить эту проблему, мы сохраняем последний раз, когда наше приложение запускалось, и проверяем эту метку времени при каждом запуске задачи. Если временная метка не 24ч (может быть 23ч или 25ч из-за изменения летнего времени), мы отменяем AlarmManager и вместо этого планируем новую. Таким образом, у нас до 2 «пропущенных» пробегов в год (мы можем жить с этим).

2 голосов
/ 04 декабря 2011

AlarmManager позаботится о сохранении дневного света.Он сбрасывал информацию о часовом поясе в начале каждого дня, принимая во внимание информацию о летнем времени.

...