Android 通知超时侦听器
Android Notification Timeout Listener
我确实在 android 中使用 Android OREO+ 中的 Notification.Builder 实现了通知功能。如果用户没有点击通知,我需要在一定时间后取消通知。这是我使用 setTimeOutAfter 方法完成的。
https://developer.android.com/reference/android/app/Notification.Builder.html#setTimeoutAfter(long).
现在,我需要向服务器发送一条消息,通知 clicked/timeout 没有发生。我该如何实施?有没有notificationTimeout监听器?
没有什么比超时侦听器更好的了,但是您可以根据自己的目的使用删除意图。您需要 Broadcast Receiver
才能在通知被关闭时执行某些操作(例如调用您的服务器)。
在代码中:
class NotificationDismissedReceiver : BroadcastReceiver() {
override fun onReceive(context: Context?, intent: Intent?) {
// call your server here
}
}
private fun getNotificationWithDeleteIntent() : Notification{
val deleteIntent = Intent(context, NotificationDismissedReceiver::class.java)
deleteIntent.action = "notification_cancelled"
val onDismissPendingIntent = PendingIntent.getBroadcast(context, 0, deleteIntent, PendingIntent.FLAG_CANCEL_CURRENT)
val builder = NotificationCompat.Builder(context, CHANNEL_ID)
.setSmallIcon(R.drawable.notification_icon)
.setContentTitle(textTitle)
.setContentText(textContent)
.setPriority(NotificationCompat.PRIORITY_DEFAULT)
.setTimeoutAfter(TIMEOUT)
.setDeleteIntent(onDismissPendingIntent)
return builder.build()
}
我确实在 android 中使用 Android OREO+ 中的 Notification.Builder 实现了通知功能。如果用户没有点击通知,我需要在一定时间后取消通知。这是我使用 setTimeOutAfter 方法完成的。
https://developer.android.com/reference/android/app/Notification.Builder.html#setTimeoutAfter(long).
现在,我需要向服务器发送一条消息,通知 clicked/timeout 没有发生。我该如何实施?有没有notificationTimeout监听器?
没有什么比超时侦听器更好的了,但是您可以根据自己的目的使用删除意图。您需要 Broadcast Receiver
才能在通知被关闭时执行某些操作(例如调用您的服务器)。
在代码中:
class NotificationDismissedReceiver : BroadcastReceiver() {
override fun onReceive(context: Context?, intent: Intent?) {
// call your server here
}
}
private fun getNotificationWithDeleteIntent() : Notification{
val deleteIntent = Intent(context, NotificationDismissedReceiver::class.java)
deleteIntent.action = "notification_cancelled"
val onDismissPendingIntent = PendingIntent.getBroadcast(context, 0, deleteIntent, PendingIntent.FLAG_CANCEL_CURRENT)
val builder = NotificationCompat.Builder(context, CHANNEL_ID)
.setSmallIcon(R.drawable.notification_icon)
.setContentTitle(textTitle)
.setContentText(textContent)
.setPriority(NotificationCompat.PRIORITY_DEFAULT)
.setTimeoutAfter(TIMEOUT)
.setDeleteIntent(onDismissPendingIntent)
return builder.build()
}