@falcon_sapsan
DevOps

Почему AlarmManager после перезапуска сервиса первый раз выполняется через 30 сек?

alarmManager = (AlarmManager) gcontext.getSystemService(gcontext.ALARM_SERVICE);
                alarmManager.setRepeating(
                        AlarmManager.ELAPSED_REALTIME_WAKEUP,
                        System.currentTimeMillis(),
                        SystemClock.elapsedRealtime() + DB.getServiceRepeatTime(),
                        pendingIntent);

Есть сервис который читает период запуска из базы данных. Для того, чтобы сервис работал с новым интервалом, я сохраняю новое значение в базу и перезапускаю сервис.
после перезапуска AlarmManager в первый раз срабатывает через 30 секунд, а затем входит в нужный интервал.
Почему первое срабатывание происходит через 30 сек?
  • Вопрос задан
  • 222 просмотра
Пригласить эксперта
Ответы на вопрос 1
@svsanek
Какая версия sdk? Внимательно почитай java doc к AlarmManager - дело в том, что начиная с версии > 19 - нет гарантии, что AlarmManager сработает точно в то время, которое ты указал.
"Note: as of API 19, all repeating alarms are inexact. If your
* application needs precise delivery times then it must use one-time
* exact alarms, rescheduling each time as described above."
Это из javadoc
Надеюсь, что я правильно вопрос понял
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы