배경:
AlarmManager를 통해 알람에 PendingIntent를 사용하고 있습니다.
문제 :
처음에는 이전의 것을 취소하려면 알람을 시작하기 전에 사용했던 정확한 requestCode를 제공해야한다고 생각했습니다.
그러나 취소 API가 말한 것처럼 내가 틀렸다는 것을 알게되었습니다 .
인 텐트가 일치하는 모든 경보를 제거합니다. 의도와 일치하는 모든 유형의 경보 (filterEquals (Intent)로 정의 됨)는 취소됩니다.
" filterEquals "를 보면 문서는 다음과 같이 말합니다.
인 텐트 해결 (필터링)을 위해 두 인 텐트가 동일한 지 확인합니다. 즉, 작업, 데이터, 유형, 클래스 및 범주가 동일한 경우입니다. 이는 인 텐트에 포함 된 추가 데이터를 비교하지 않습니다.
그래서 나는 "requestCode"가 무엇인지 이해하지 못한다.
질문:
"requestCode"는 무엇에 사용됩니까?
동일한 "requestCode"로 여러 알람을 생성하면 어떻게됩니까? 그들은 서로를 무시합니까?
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.