在通知栏中永久显示文本

时间:2014-07-12 09:02:18

标签: android

我想询问如何在通知栏中永久显示文字? 几秒后,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());

(是否有一个更好的解决方案来隐藏小图标?它以这种方式透明但仍然占据了这个位置)

提前致谢!

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

只能在状态栏中显示永久图标。自动收录器设置的文本不能是永久性的,并且只在第一次显示通知时出现一段时间。这是设计使然,因为用户通常不需要“隐藏”状态栏的永久消息。

要完全隐藏小图标,您可以将NotificationBuilder.setPriority(int)与标记Notification.PRIORITY_MIN一起使用。这样,通知将减少到最小,其中包括隐藏图标。但是这种方法仅适用于API 16+。在此级别下方,您可以设置transperent图标(您已经执行的操作),但图标的空间就像占位符一样,无法删除。也许这个answer对你的情况有帮助,但它只是将图标空间移动到另一个区域。