Я использую BroadcastReceiver
для обработки некоторых данных после того, как пользователь нажимает на кнопку действия из уведомления.
Итак, чтобы добиться этого, сначала я строю PendingIntent:
val intent = Intent(context, CustomBroadcastReceiver::class.java).apply {
action = MY_ACTION
// Also put some extras here like notification id.
}
val pendingIntent = PendingIntent.getBroadcast(this, 0, intent, 0)
И этовызывается из Service
, который создает и показывает уведомление:
NotificationCompat.Builder(this, CHANNEL_ID)
.setContentTitle(getString(R.string.title))
.setContentText(getString(R.string.text))
.setSmallIcon(R.drawable.ic_notification)
.addAction(actionIcon, actionTitle, pendingIntent)
.setAutoCancel(true)
.build()
Затем в CustomBroadcastReceiver я отменяю это уведомление (у меня есть идентификатор уведомления от намерения):
getNotificationManager().cancel(notificationId)
Проблемаэто то, что уведомление не отклоняется, оно пока на ящике уведомлений.
Я видел ответы от на этот вопрос , но это не помогает - я использую applicationContext
,tificationId правильныйи больше 0.