В то время как почти все здесь дали правильный ответ, никто не объяснил, на каком основании работают аварийные сигналы.
Вы можете узнать больше о AlarmManager
его работе здесь . Но вот быстрый ответ
Вы видите в AlarmManager
основном графики PendingIntent
на какое-то время в будущем. Таким образом, чтобы отменить запланированный будильник, необходимо отменить PendingIntent
.
Всегда помните две вещи при создании PendingIntent
PendingIntent.getBroadcast(context,REQUEST_CODE,intent, PendingIntent.FLAG_UPDATE_CURRENT);
- Код запроса - действует как уникальный идентификатор
- Флаг - определяет поведение
PendingIntent
Теперь, чтобы проверить, запланирован ли будильник, или отменить будильник, вам просто нужно получить к нему доступ PendingIntent
. Это можно сделать, если вы используете тот же код запроса и используете, FLAG_NO_CREATE
как показано ниже
PendingIntent pendingIntent=PendingIntent.getBroadcast(this,REQUEST_CODE,intent,PendingIntent.FLAG_NO_CREATE);
if (pendingIntent!=null)
alarmManager.cancel(pendingIntent);
С FLAG_NO_CREATE
ним вернется, null
если PendingIntent
еще не существует. Если он уже существует, он возвращает ссылку на существующийPendingIntent