Contexte:
J'utilise PendingIntent pour les alarmes via AlarmManager.
Le problème:
Au début, j'ai pensé que pour annuler les précédents, je devais fournir le requestCode exact que j'ai utilisé auparavant pour déclencher l'alarme.
Mais ensuite, j'ai découvert que j'avais tort, comme le dit l' API d'annulation :
Supprimez toutes les alarmes avec une intention correspondante. Toute alarme, de tout type, dont l'intention correspond à celle-ci (telle que définie par filterEquals (Intent)), sera annulée.
en regardant " filterEquals ", la documentation dit:
Déterminez si deux intentions sont identiques aux fins de la résolution d'intention (filtrage). Autrement dit, si leur action, leurs données, leur type, leur classe et leurs catégories sont identiques. Cela ne compare aucune donnée supplémentaire incluse dans les intentions.
donc je ne comprends pas à quoi sert le "requestCode" ...
La question:
À quoi sert "requestCode"?
Que faire si je crée plusieurs alarmes avec le même "requestCode"? se substituent-ils les uns aux autres?
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.