NotificationChannel-如何显示一段时间的通知然后将其隐藏?

时间:2019-01-02 17:50:43

标签: android notifications notification-channel

前一段时间,我在更新通知以使用必需的 NotificationChannel 后,我更新了我的应用程序以添加对Android 8+的支持,我注意到我失去了一项功能。 br /> 该应用使用了天文钟通知,那时我可以更新通知优先级,使用 PRIORITY_HIGH 显示通知,因此通知已“推送”给用户,然后将通知优先级编辑为 PRIORITY_LOW ,以隐藏通知。

在阅读文档后,据我所知,创建NotificationChannel后我无法控制优先级,而将控制权留给用户,但是,要求用户编辑通知设置并不是我的最佳选择

相关代码:

//Creating the notification channel (while setting up the app)
NotificationChannel channel = new NotificationChannel(channelId, channelTitle, NotificationManager.IMPORTANCE_HIGH);

//Editing the NotificationChannel to lower the Notification priority (not working)
NotificationChannel channel = notificationManager.getNotificationChannel(channelId);
channel.setImportance(NotificationManager.IMPORTANCE_LOW);     
notificationManager.createNotificationChannel(channel);

有没有办法在仍然使用NotificationChannels的情况下完成此行为?

1 个答案:

答案 0 :(得分:0)

原来,我只是想了一下(很多),只是添加了选项 NotificationBuilder 上的 setOnlyAlertOnce 仍在使用 NotificationManager.IMPORTANCE_HIGH 设置频道的同时,会导致预期的行为,如下所示:

NotificationCompat.Builder notificationBuilder = 
    new NotificationCompat.Builder(context, channelId).setOnlyAlertOnce(true);