Android:如何将通知放在通知区域之上?

我试图把通知放在通知区域之上。

一个解决scheme是设置参数“当”我的通知对象与未来的时间,如:

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放到通知区域的顶部?

Solutions Collecting From Web of "Android:如何将通知放在通知区域之上?"

你应该做这个。 其他答案似乎过时了。

 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)很重要。 它也可以根据需要用以下任何一种replace。

不同的优先级信息:

PRIORITY_MAX – 用于关键和紧急通知,用于提醒用户在可以继续执行特定任务之前对时间要求严格或需要解决的情况。

PRIORITY_HIGH – 主要用于重要的沟通,例如消息或聊天事件,其内容对用户来说特别有意思。 高优先级通知触发抬头通知显示。

PRIORITY_DEFAULT – 用于所有不属于此处描述的其他优先级的通知。

PRIORITY_LOW – 用于通知您希望通知用户,但不那么紧急。 低优先级通知往往出现在列表的底部,这使得它们成为诸如公共或无向社交更新之类的不错select:用户已经要求通知他们,但是这些通知不应该优先于紧急或直接沟通。

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设置为高

文档> 通知优先级

另外检查这个问题可能可以帮助你通知区域顶部的通知

请注意,如果您需要“抬头”通知,即显示在当前用户窗口顶部的通知,则必须在构build器中设置以下内容:

 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);