Hintergrund:
Ich verwende PendingIntent für Alarme über AlarmManager.
Das Problem:
Zuerst dachte ich, um vorherige abzubrechen, muss ich den genauen requestCode angeben, den ich zuvor zum Starten des Alarms verwendet habe.
Aber dann habe ich herausgefunden, dass ich falsch lag, wie die Stornierungs-API sagt:
Entfernen Sie alle Alarme mit einer passenden Absicht. Jeder Alarm jeglicher Art, dessen Absicht mit dieser übereinstimmt (wie durch filterEquals (Absicht) definiert), wird abgebrochen.
In der Dokumentation zu " filterEquals " heißt es:
Stellen Sie fest, ob zwei Absichten zum Zwecke der Absichtsauflösung (Filterung) gleich sind. Das heißt, wenn Aktion, Daten, Typ, Klasse und Kategorien identisch sind. Dadurch werden keine zusätzlichen Daten verglichen, die in den Absichten enthalten sind.
Ich verstehe also nicht, wofür der "requestCode" ist ...
Die Frage:
Wofür wird "requestCode" verwendet?
Was ist, wenn ich mehrere Alarme mit demselben "requestCode" erstelle? überschreiben sie sich gegenseitig?
If you truly need multiple distinct PendingIntent objects active at the same time (such as to use as two notifications that are both shown at the same time), then you will need to ensure there is something that is different about them to associate them with different PendingIntents. This may be any of the Intent attributes considered by Intent#filterEquals(Intent), or different request code integers supplied.