У меня есть таблица с содержимым уведомлений. Одна запись всегда помечается как isNext
, пока не останется ни одной.
Дни между уведомлениями различаются и также сохраняются в указанной таблице, поэтому я использую «цепочку» сигналов вместо одного повторяющегося сигнала.
![db screenshot](https://i.stack.imgur.com/ruuDx.png)
Теперь я прочитал, что все аварийные сигналы менеджера будут сброшены после перезагрузки устройства ( сохраняется ли Alarm Manager даже после перезагрузки? ).
Теперь, кажется, есть два способа решить эту проблему:
- Проверять каждый раз, если будильник уже установлен, и если не создать его снова, как здесь тоже спрашивается: Как проверить, если AlarmManager уже имеет установленный будильник?
- Или, как показано в приведенном выше вопросе, зарегистрируйте BroadcastReceiver с помощью
<action android:name="android.intent.action.BOOT_COMPLETED" />
и просто перезапускайте сигнал тревоги каждый раз, когда устройство выполняло перезагрузку
Но оба пути кажутся ненадежными. Не сбрасывает ли это время срабатывания будильника каждый раз? Например. после настройки будильника он читает 3 дня из базы данных, но затем перезапускается и снова читает 3, так что он постоянно выдвигается вперед.
Должен ли я действительно делать такие вещи, как сохранение текущего временного расстояния в SharedPreferences
, а затем каждый раз читать его или около того?
Каково было бы оптимальное решение для моего варианта использования?