【发布时间】:2012-01-07 13:30:36
【问题描述】:
在我的应用程序中,我将我的服务放在前台,以防止它被杀死:
startForeground(NOTIFY_ID, notification);
这也会向用户显示通知(这很棒)。问题是稍后我需要更新通知。所以我使用代码:
notification.setLatestEventInfo(getApplicationContext(), someString, someOtherString, contentIntent);
mNotificationManager.notify(NOTIFY_ID, notification);
那么问题是:这样做会不会让服务脱离它的特殊前台状态?
在this answer,CommonsWare 表示这种行为是可能的,但他不确定。那么有人知道实际答案吗?
注意:我知道摆脱这个问题的一个简单方法是每次我想更新通知时重复调用startForeground()。我想知道这个替代方案是否也有效。
【问题讨论】:
-
顺便说一句,虽然您可以更新现有通知的文本,但对于给定的通知,您不能让代码文本多次出现在状态栏中,即使您更改了它——在至少不使用 Notification.FLAG_ONGOING_EVENT。要为现有通知显示新的代码文本,您需要取消通知然后重新启动它。
标签: android android-service android-notifications