Latar Belakang:
Saya menggunakan PendingIntent untuk alarm melalui AlarmManager.
Masalah:
Awalnya saya berpikir bahwa untuk membatalkan yang sebelumnya, saya harus memberikan requestCode persis seperti yang saya gunakan sebelumnya untuk memulai alarm.
Tapi kemudian saya menemukan saya salah, seperti yang dikatakan API pembatalan :
Hapus semua alarm dengan Intent yang cocok. Alarm apa pun, jenis apa pun, yang Intentnya cocok dengan alarm ini (sebagaimana ditentukan oleh filterEquals (Intent)), akan dibatalkan.
melihat " filterEquals ", dokumentasinya mengatakan:
Tentukan apakah dua maksud sama untuk tujuan resolusi maksud (pemfilteran). Artinya, jika tindakan, data, jenis, kelas, dan kategorinya sama. Ini tidak membandingkan data tambahan apa pun yang disertakan dalam maksud.
jadi saya tidak mengerti untuk apa "requestCode" ...
Pertanyaan:
Untuk apa "requestCode" digunakan?
Bagaimana jika saya membuat beberapa alarm dengan "requestCode" yang sama? apakah mereka saling menimpa?
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.