25

我正在尝试将我的通知放在通知区域的顶部。

一种解决方案是将参数“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

4 回答 4

20

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

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

于 2016-01-30T20:24:19.613 回答
4

你可以让你的通知Ongoing,当它看起来比其他通常的通知更高时。但在这种情况下,用户将无法手动清除它。

为了做到这一点,为您的Notification对象设置标志:

notif.flags = Notification.FLAG_ONGOING_EVENT | Notification.FLAG_NO_CLEAR
于 2012-10-06T10:00:10.147 回答
3

尝试将priority通知设置为高

文档 >通知优先级

还要检查这个问题,它可以帮助您将通知固定到通知区域的顶部

于 2012-10-06T10:13:10.847 回答
2

请注意,如果您想要“提示”通知,即显示在当前用户窗口顶部的通知,您必须在构建器中进行以下设置:

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);
于 2017-07-04T02:16:50.313 回答