Fundo:
Estou usando PendingIntent para alarmes via AlarmManager.
O problema:
A princípio pensei que, para cancelar os anteriores, devo fornecer o requestCode exato que usei antes para iniciar o alarme.
Mas então descobri que estava errado, como diz a API de cancelamento :
Remova todos os alarmes com um Intent correspondente. Qualquer alarme, de qualquer tipo, cujo Intent corresponda a este (conforme definido por filterEquals (Intent)), será cancelado.
olhando para " filterEquals ", a documentação diz:
Determine se duas intents são iguais para fins de resolução de intent (filtragem). Isto é, se sua ação, dados, tipo, classe e categorias são os mesmos. Isso não compara nenhum dado extra incluído nas intents.
então não entendi para que serve o "requestCode" ...
A questão:
Para que é usado "requestCode"?
E se eu criar vários alarmes com o mesmo "requestCode"? eles se sobrepõem?
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.