Während fast jeder hier die richtige Antwort gegeben hat, hat niemand erklärt, auf welcher Grundlage die Alarme funktionieren
Sie können tatsächlich mehr darüber erfahren , AlarmManagerund seine Arbeit hier . Aber hier ist die schnelle Antwort
Sie sehen im AlarmManagerGrunde Zeitpläne a PendingIntentirgendwann in der Zukunft. Um den geplanten Alarm abzubrechen, müssen Sie den Alarm abbrechen PendingIntent.
Beachten Sie beim Erstellen des immer zwei Dinge PendingIntent
PendingIntent.getBroadcast(context,REQUEST_CODE,intent, PendingIntent.FLAG_UPDATE_CURRENT);
- Anforderungscode - Dient als eindeutige Kennung
- Flag - Definiert das Verhalten von
PendingIntent
Um zu überprüfen, ob der Alarm bereits geplant ist, oder um den Alarm abzubrechen, müssen Sie nur noch auf denselben zugreifen PendingIntent. Dies kann erfolgen, wenn Sie denselben Anforderungscode verwenden und FLAG_NO_CREATEwie unten gezeigt verwenden
PendingIntent pendingIntent=PendingIntent.getBroadcast(this,REQUEST_CODE,intent,PendingIntent.FLAG_NO_CREATE);
if (pendingIntent!=null)
alarmManager.cancel(pendingIntent);
Mit FLAG_NO_CREATEwird zurückgegeben, nullwenn das PendingIntentnoch nicht existiert. Wenn es bereits vorhanden ist, wird ein Verweis auf das vorhandene zurückgegebenPendingIntent