用户点击通知中的操作按钮后,我使用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中,我要取消此通知(我有来自意图的通知ID):
getNotificationManager().cancel(notificationId)
问题在于通知无法关闭,直到通知抽屉中。
我看到了this question的答案,但这无济于事-我正在使用applicationContext
,notificationId是正确的并且大于0。