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

时间:2012-10-06 09:51:21

标签: android notifications android-notification-bar notification-bar

我正在尝试将通知放在通知区域之上。

解决方案是将参数“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置于通知区域的顶部?

4 个答案:

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