Arka fon:
AlarmManager aracılığıyla alarmlar için PendingIntent kullanıyorum.
Sorun:
İlk başta, öncekileri iptal etmek için, alarmı başlatmak için daha önce kullandığım tam requestCode'u sağlamam gerektiğini düşündüm.
Ama sonra iptal API'sinin dediği gibi yanıldığımı anladım :
Eşleşen bir Amacı olan tüm alarmları kaldırın. Amacı bununla eşleşen herhangi bir tür alarm (filterEquals (Amaç) ile tanımlandığı gibi) iptal edilecektir.
" filterEquals " a bakıldığında , dokümantasyon şunu söylüyor:
Amaç çözümleme (filtreleme) açısından iki amacın aynı olup olmadığını belirleyin. Yani eylemleri, verileri, türü, sınıfı ve kategorileri aynıysa. Bu, amaçlara dahil edilen ekstra verileri karşılaştırmaz.
bu yüzden "requestCode" un ne için olduğunu anlamıyorum ...
Soru:
"RequestCode" ne için kullanılır?
Aynı "requestCode" ile birden fazla alarm oluşturursam ne olur? birbirlerini geçersiz kılıyorlar mı?
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.