NotificationListenerServiceのonNotificationPosted()で2回同じものが来るときの対処法メモです。
環境
- Android: 8.1.0
- kotlin: 1.2.10
サンプルコード
class NLService : NotificationListenerService() {
private var mPreviousKey = ""
override fun onNotificationPosted(sbn: StatusBarNotification) {
val key = "${sbn.id} ${sbn.packageName}"
if (mPreviousKey == key) return
mPreviousKey = key
// do something
}
}
補足
StatusBarNotificationのid
とpackageName
が前回来たものと一致してたらreturn
してます。
tag
も一致してるか確認してもいいかもしれません。
参考
Android NotificationListenerService onNotificationPosted fire twice - Stack Overflow
https://stackoverflow.com/questions/33412124/android-notificationlistenerservice-onnotificationposted-fire-twice