从永久服务设置通知文本

时间:2015-12-10 14:08:37

标签: android service notifications

我有一个不断在后台运行的服务,并通知其当前状态。单击通知时,将打开一个允许您管理服务的活动。这完全奏效,直到我设置

android:targetSdkVersion="23"
清单中的

在此之前我会用这个创建我的通知:

Notification myNotification = new Notification();
//several options

然后我会用这个更新我的通知文本:

myNotification.setLatestEventInfo

我担心setLatestEventInfo已被弃用了一段时间,似乎已经与sdk 23消失了。很好。

然后我使用Notification.Builder来创建通知。我正试图用这个更新文本:

notificationBuilder.setContentText(textToDisplay);

或者

notificationBuilder.setStyle(new Notification.BigTextStyle().bigText(textToDisplay));

但没有任何作用。它只显示默认文本,如“单击此处以显示更多信息”。

然后通知

没有“开始”
notificationManager.notify(notificationId, myNotification);

但是因为它是来自

的服务
instance.startForeground(notificationId, myNotification);

问题nr.1:

文字没有显示,只有“点击了解更多信息”

问题nr.2:

单击将从操作系统的设置菜单中打开应用信息活动。它应该显示我选择的活动。

1 个答案:

答案 0 :(得分:0)

通知文档显示three fields are required:小图标,标题和详细信息文本。小图标似乎特别重要。如果缺少,则会显示通知被判断为#34;格式错误"并应用特殊处理described here。该处理包括在通知中显示通用标题,例如" app-name正在运行",并在点击通知时启动应用程序的App Info活动。

您看到的行为是因为您在构建通知时没有设置小图标。您还应该为类别指定Notification.CATEGORY_SERVICE,而不是Context.ACTIVITY_SERVICE。