AlarmManager - Нужно ли повторно устанавливать будильник на случай, если устройство выключено? - PullRequest
0 голосов
/ 31 мая 2019

У меня есть таблица с содержимым уведомлений. Одна запись всегда помечается как isNext, пока не останется ни одной.
Дни между уведомлениями различаются и также сохраняются в указанной таблице, поэтому я использую «цепочку» сигналов вместо одного повторяющегося сигнала.

db screenshot

Теперь я прочитал, что все аварийные сигналы менеджера будут сброшены после перезагрузки устройства ( сохраняется ли Alarm Manager даже после перезагрузки? ).

Теперь, кажется, есть два способа решить эту проблему:

  • Проверять каждый раз, если будильник уже установлен, и если не создать его снова, как здесь тоже спрашивается: Как проверить, если AlarmManager уже имеет установленный будильник?
  • Или, как показано в приведенном выше вопросе, зарегистрируйте BroadcastReceiver с помощью <action android:name="android.intent.action.BOOT_COMPLETED" /> и просто перезапускайте сигнал тревоги каждый раз, когда устройство выполняло перезагрузку

Но оба пути кажутся ненадежными. Не сбрасывает ли это время срабатывания будильника каждый раз? Например. после настройки будильника он читает 3 дня из базы данных, но затем перезапускается и снова читает 3, так что он постоянно выдвигается вперед.

Должен ли я действительно делать такие вещи, как сохранение текущего временного расстояния в SharedPreferences, а затем каждый раз читать его или около того?

Каково было бы оптимальное решение для моего варианта использования?

...