【问题标题】:Showing text permanently in the notification bar [duplicate]在通知栏中永久显示文本[重复]
【发布时间】:2014-07-12 09:02:17
【问题描述】:

我想问一下如何在通知栏中永久显示文本? setTicker() 方法设置的代码在几秒钟后消失。

我的目标是在通知栏中显示当前温度。这样做的最佳解决方案是什么?也许有办法将文本传递给setSmallIcon() 方法?

这是我的通知代码:

NotificationCompat.Builder notBuilder = new NotificationCompat.Builder(getApplicationContext());
            notBuilder.setContentText("text");
            notBuilder.setContentTitle("title");
            notBuilder.setSmallIcon(android.R.color.transparent);
            notBuilder.setTicker("ticker");
            notBuilder.setOngoing(true);
            int notID = 8;
            NotificationManager nm = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
            nm.notify(notID, notBuilder.build());

(有没有更好的解决方案来隐藏小图标?这样是透明的,但仍然占位)

提前致谢!

【问题讨论】:

    标签: android


    【解决方案1】:

    将此标志设置为您的构建器notBuilder.setOngoing(true);。就图标而言,这将永久显示通知设置一个小的透明图像。

    你可以试试notBuilder.setSmallIcon(android.R.color.transparent);

    【讨论】:

    • 已设置,通知保持不变,但文本(由 setTicker() 方法设置)仍然消失。我希望文本是永久的,类似于小图标。
    • @user8 更新了答案。
    【解决方案2】:

    只能在状态栏中显示永久图标。由代码设置的文本不能是永久的,并且仅在通知首次显示时出现一段时间。这是设计使然,因为用户通常不想要“隐藏”状态栏的永久消息。

    要完全隐藏小图标,您可以使用 NotificationBuilder.setPriority(int) 和标志 Notification.PRIORITY_MIN。这样通知将减少到最低限度,其中包括隐藏图标。但此方法仅在 API 16+ 中可用。在此级别以下,您可以设置一个透明图标(您已经做过),但图标的空间就像一个占位符并且不能被删除。也许这个answer 对您的情况有帮助,但它只是将图标空间移动到另一个区域。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-26
      • 2017-05-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多