Задать вопрос
@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 сек?
  • Вопрос задан
  • 223 просмотра
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Android-разработчик
    12 месяцев
    Далее
  • Нетология
    Android-разработчик с нуля
    14 месяцев
    Далее
  • LearnQA
    Автоматизатор мобильных приложений
    9 недель
    Далее
Пригласить эксперта
Ответы на вопрос 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
Надеюсь, что я правильно вопрос понял
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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