Antecedentes:
Estoy usando PendingIntent para alarmas a través de AlarmManager.
El problema:
Al principio pensé que para cancelar los anteriores, debía proporcionar el requestCode exacto que había usado antes para iniciar la alarma.
Pero luego descubrí que estaba equivocado, como dice la API de cancelación :
Elimina las alarmas con una intención coincidente. Se cancelará cualquier alarma, de cualquier tipo, cuyo Intent coincida con este (según lo definido por filterEquals (Intent)).
mirando " filterEquals ", la documentación dice:
Determine si dos intenciones son iguales a los efectos de la resolución de intenciones (filtrado). Es decir, si su acción, datos, tipo, clase y categorías son los mismos. Esto no compara ningún dato adicional incluido en las intenciones.
así que no entiendo para qué sirve el "requestCode" ...
La pregunta:
¿Para qué se utiliza "requestCode"?
¿Qué sucede si creo varias alarmas con el mismo "requestCode"? ¿Se anulan entre sí?
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.