我正在尝试将通知放在通知区域之上。
解决方案是将参数“when”设置为我的通知对象,其未来时间如下:
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
置于通知区域的顶部?
答案 0 :(得分:17)
你应该这样做。其他答案似乎已经过时了。
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_DEFAULT - 用于不属于此处描述的任何其他优先级的所有通知。
PRIORITY_LOW - 用于通知您希望用户了解但不太紧急的通知。低优先级通知往往显示在列表的底部,这使得它们成为公共或无向社交更新等内容的良好选择:用户已要求收到有关它们的通知,但这些通知不应优先于紧急或直接沟通。
PRIORITY_MIN - 用于上下文或背景信息,例如天气信息或上下文位置信息。最低优先级通知不会出现在状态栏中。用户在扩展通知阴影时会发现它们。
有关详细信息,请查看以下链接: http://developer.android.com/design/patterns/notifications.html#correctly_set_and_manage_notification_priority
答案 1 :(得分:3)
您可以发出通知Ongoing
,此时通知会高于其他常规通知。但在这种情况下,用户不能够手动清除它。
为此,请设置Notification
对象的标记:
notif.flags = Notification.FLAG_ONGOING_EVENT | Notification.FLAG_NO_CLEAR
答案 2 :(得分:3)
尝试将通知的priority
设置为高
文档> Notification Priority
同时查看此问题可能会对您有所帮助Pin Notification to top of notification area
答案 3 :(得分:1)
请注意,如果你想要一个单挑"通知,即显示在当前用户窗口顶部的通知,您必须在构建器中设置以下内容:
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);