【问题标题】:How to pin notification always on the top of notification bar如何将通知始终固定在通知栏顶部
【发布时间】:2016-05-10 22:21:32
【问题描述】:

我正在尝试修复始终位于通知栏顶部的四个无法关闭的按钮。首次启动应用程序时,按钮将始终固定。为此,我通过 Notification Builder 创建通知,如下所示。

 Notification notification = new Notification.Builder(this).build();      
       notification.flags = Notification.FLAG_ONGOING_EVENT;
       notification.icon = R.drawable.ic_launcher;
       notification.contentIntent = pendingIntent;
       notification.setSmallIcon = R.drawable.ic_launcher;
       notification.flags = Notification.FLAG_ONGOING_EVENT | Notification.FLAG_NO_CLEAR;
       notification.priority = Notification.PRIORITY_HIGH;
       mNotificationManager.notify(Constants.NOTIFICATION_ID_BRANDING, notification);

一切正常,我什至可以在顶部显示我的通知,但是当我收到来自不同应用程序的其他通知时,我的通知显示在该应用程序下方。

notification.priority = Notification.PRIORITY_HIGH; 行会做这件事,但它只针对我们的应用程序。

我的要求:但我的要求是无论任何通知如何,我的通知始终位于顶部。请帮助我提供您的提示和解决方案。提前致谢。

【问题讨论】:

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


【解决方案1】:

我正在尝试修复总是在通知栏顶部无法关闭的四个按钮

这是不可能的,除非您创建自己的自定义 ROM。

首先,Android,而不是你,决定了通知托盘中项目的顺序。

其次,在 Android 5.0+ 上,用户可以阻止通知,从而阻止您的应用显示任何内容,更不用说顶部的内容了。

第三,如果有 2 位以上的程序员尝试实现相同的“需求”,则必须输掉一个,因为最顶层的项目只有一个。因此,即使您的方法有效,面对一些尝试相同事情的其他开发人员,它们也可能会失败。

除此之外,即使您想出了一些似乎可行的脚本小子方法,它也可能在其他设备上失败,因为订购通知的规则可能取决于设备和操作系统版本。

当我收到来自不同应用程序的其他通知时,我的通知显示在该应用程序下方

这是因为控制通知顺序的是 Android,而不是您。

notification.priority = Notification.PRIORITY_HIGH 行;做这件事,但它只针对我们的应用程序。

更准确地说,它只是订单的一个标准。欢迎 Android 使用其他标准(例如,时间、系统应用与普通应用、正在进行与常规、前台服务与常规)来决定它将使用什么顺序。

【讨论】:

  • 感谢您的回复。就连我也是这样徘徊。但是,在像 Clean Master 这样的应用程序中,他们通过将通知内容固定在顶部来做这件事。但这又不是 android 的默认行为,他们是通过一个小技巧来做到这一点的,当新通知到达时,他们会将通知折叠到顶部。
【解决方案2】:

看来您正在寻找的是前台服务。检查http://developer.android.com/reference/android/app/Service.html#startForeground(int,android.app.Notification)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多