Мне нужно установить несколько будильников, которые будут повторяться еженедельно, чтобы телефон автоматически вибрировал, когда пользователь находится на каком-либо занятии (это академическое приложение), а затем сбрасывал громкость по окончании занятия.
У меня уже есть создаваемые сигналы тревоги, но у меня должен быть способ деактивировать их все, если пользователь отключит эту функцию. Я также знаю, что должен сделать это, передав и указав те же параметры методу AlarmManager.cancel(), но проблема здесь в следующем:
Пользователь может отменить занятия и записаться на занятия (но не напрямую в приложении), и это обновляется и отражается в БД, в которой хранятся только текущие занятия. Итак, если у меня есть настройка будильника для класса, которого больше не существует, как я могу отменить его, если я не могу реплицировать PendingIntent?
Одно из решений, которое я вижу здесь, состоит в том, чтобы создать таблицу БД для отслеживания текущих аварийных сигналов, тогда у меня будет полный контроль над ними, другим способом будет отмена и сброс всех аварийных сигналов при обновлении списка классов, но для этого требуется справедливое количество времени, а третий, но менее удобный вариант — просто подождать, пока пользователь загрузит телефон, и при сбросе сигналов тревоги просто установить те, которые мне нужны (исправьте, если я ошибаюсь в этом поведении при загрузке). Есть ли четвертый вариант, который я должен попробовать, или один из этих, если он достаточно хорош?