我一直在尝试使用以下方法删除服务设置的持久通知:
startForeground(1337, notification);
我用来取消它的代码:
NotificationManager nManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
nManager.cancel(1337); // cancel existing service notification, doesn't take effect
nManager.cancelAll(); //surpluous, but also doesn't take effect
为了澄清我这样做的原因:服务以默认的持久通知开始。当我的应用程序运行时,它需要将此通知替换为另一个。在现有通知上使用notify()
效果很好,但是,我还需要它来显示新通知的代码文本。这就是为什么我决定删除现有通知(使用上面的代码),创建一个新通知,然后我startForeground()
再次调用并将新通知传递给它,所以我的服务仍然存在。