我正试图将我的通知放在通知区域的顶部。
一种解决方案是将参数";当";到我的通知对象,其未来时间如下:
notification.when = System.currentTimeMills()*2;
我在这里使用的代码:
long timeNotification = System.currentTimeMillis()*2;
Notification notification = new Notification(statusIcon,c.getResources().getString(R.string.app_name),timeNotification);
notification.flags = Notification.FLAG_ONGOING_EVENT | Notification.FLAG_NO_CLEAR;
notification.when = timeNotification;
notification.priority = Notification.PRIORITY_MAX;
但一些应用程序(如Facebook)可以在我的应用程序上添加一个简单的通知,告知他们当前的时间。
如果我刷新我的通知,它将保留在这些通知之下。
我必须设置哪些参数才能将我的Notification
放在通知区域的顶部?
您应该这样做。其他答案似乎已经过时了。
NotificationCompat.Builder mBuilder =
(NotificationCompat.Builder) new NotificationCompat.Builder(context)
.setSmallIcon(R.drawable.some_small_icon)
.setContentTitle("Title")
.setContentText("This is a test notification with MAX priority")
.setPriority(Notification.PRIORITY_MAX);
setPriority(Notification.PRIORITY_MAX)非常重要。根据需要,也可以用以下任何一种进行更换。
不同优先级信息:
PRIORITY_MAX--用于关键和紧急通知,提醒用户出现时间紧迫或需要解决的情况,然后才能继续执行特定任务。
PRIORITY_HIGH--主要用于重要的交流,例如消息或聊天事件,内容对用户来说特别有趣。高优先级通知会触发提醒通知显示。
优先级_故障--用于不属于此处描述的任何其他优先级的所有通知。
优先级低--用于希望通知用户但不那么紧急的通知。低优先级通知往往显示在列表的底部,这使它们成为公共或无方向社交更新等内容的好选择:用户已要求收到有关通知,但这些通知永远不应优先于紧急或直接通信。
PRIORITY_MIN--用于上下文或背景信息,如天气信息或上下文位置信息。最低优先级通知不会显示在状态栏中。用户在展开通知阴影时发现它们。
有关更多详细信息,请查看以下链接:http://developer.android.com/design/patterns/notifications.html#correctly_set_and_manage_notification_priority
您可以将您的通知设为Ongoing
,此时它将比其他常规通知显示得更高。但在这种情况下,用户将无法手动清除它。
为了做到这一点,请为Notification
对象设置标志:
notif.flags = Notification.FLAG_ONGOING_EVENT | Notification.FLAG_NO_CLEAR
尝试将通知的priority
设置为高
文档>通知优先级
也检查这个问题,它可能会帮助你将通知钉到通知区域的顶部
请注意,如果您想要一个"提醒"通知,即显示在当前用户窗口顶部的通知,则必须在生成器中设置以下内容:
setDefaults(NotificationCompat.DEFAULT_VIBRATE)
参考文献在javadoc:中
在某些平台上,振动的通知更有可能以提醒通知的形式出现。
提醒通知的完整示例:
NotificationCompat.Builder mBuilder =
new NotificationCompat.Builder(context)
.setSmallIcon(R.drawable.some_small_icon)
.setContentTitle("Title")
.setContentText("This is a test notification with MAX priority")
.setPriority(Notification.PRIORITY_MAX)
.setDefaults(NotificationCompat.DEFAULT_VIBRATE);