0

我已将此 FLAG 用于我的服务:Notification.FLAG_FOREGROUND_SERVICE;但是当我调用 notificationManager.cancel(IDN) 时,图标总是在状态栏中可见.....如果我在调用 notificationManager.cancel(IDN) 时更改 Notification.FLAG_AUTO_CANCEL 上的 FLAG,图标就消失了。如何使用 FLAG_FOREGROUND_SERVICE 然后取消图标?

4

3 回答 3

0

我用了:

public final void startForeground (int id, Notification notification)

并且可以取消通知。

于 2011-10-04T06:51:50.837 回答
0

请参考这个,前台服务

如果此通知表示当前正在运行的服务,则按位或位到应该设置的标志字段中。这通常由 startForeground(int, Notification) 为您设置。”

为了帮助可能遇到此问题的其他人,如果 FLAG_FOREGORUND_SERVICE 的文档更强烈地表明该标志的用户不能使用 nm.cancel() 并且需要使用 startForeground/stopForeground 对,那将真的很有帮助。也许是这样的:

“位被按位或位到标志字段中以指示当前正在运行的服务的前台状态。您不应直接使用此标志,而让 startForeground() 为您设置它,并使用 stopForeground(true) 将其删除。”

于 2013-03-28T09:35:04.367 回答
0

我不确定我是否收到了您的问题,但您可以使用以下方法取消您应用中的所有通知:

final NotificationManager mNotificationManager = (NotificationManager) ctx.getSystemService(Context.NOTIFICATION_SERVICE);
mNotificationManager.cancelAll();
于 2011-04-07T18:21:44.320 回答