我有一个要查看的I / O任务期间弹出的通知,以便用户知道其他地方(状态栏)的详细信息。在较旧的设备上,我的代码可以运行,但是在较新的设备上,通知不会在状态栏上消失,而是永久性提醒。我希望在更新的设备上,通知更新(当前文件)会导致窥视复位。任何人都知道确保通知是偷窥而不是平视的方法吗?
我的应用为全屏显示,这就是default
优先显示的原因 。
Util.createNotificationChannel(
applicationContext,
"copy",
"Copying...",
"Notifications for copy tasks.")
val builder = Util.createNotification(
applicationContext,
"copy",
applicationContext.getString(R.string.copyingImages),
applicationContext.getString(R.string.preparing))
val notifications = NotificationManagerCompat.from(applicationContext)
notifications.notify(builder.build())
...
(loop)
builder
.setProgress(images.size, index, false)
.setContentText(value.name)
.priority = NotificationCompat.PRIORITY_DEFAULT
notifications.notify(builder.build())
答案 0 :(得分:1)
我相信Notification.Builder.setOnlyAlertOnce()
将获得您期望的结果。
答案 1 :(得分:0)
@paulajcm具有其核心:
我相信Notification.Builder.setOnlyAlertOnce()将获得您期望的结果。
要考虑的另一个方面是,通知ID必须是唯一的,否则您将永远不会再次窥视该类型的通知,因为您已经有效地将其设置为不再窥视。
builder.notify(JOB_TAG, id, notification) // id must be 'unique'
我要做的另一件事是切换setOnlyAlertOnce(false)
作为最后一条消息,因此有一个窥视通知操作也已完成:
builder
.setContentText("Complete")
.setProgress(0,0,false)
.setOnlyAlertOnce(false)
notifications.notify(builder.build(), notificationId)
因此,对于一个长期运行的后台任务而言,现在对用户来说很清楚,而不会在它们之间造成错误。