假设您希望显示一个带有前台服务标志的通知,并使用nm来显示它:
Notification notification = new Notification(...);
notification.flags |= Notification.FLAG_FOREGROUND_SERVICE
nm.notify(SOME_ID, notification);此时将显示通知。然而,删除它是困难的,因为这似乎不会做任何事情:
nm.cancel(SOME_ID);如何取消此通知?stopForeground不是一个解决方案,因为我不在服务中。
发布于 2013-02-23 06:05:58
有什么解决方案吗?
如果this issue是可信的,那么除了有一个调用stopForeground()的服务之外,不是。您可以通过startService()向您的服务发送命令,以便它可以调用stopForeground()。或者,您可以创建一个小型的专用Service,它只需从onStartCommand()调用stopForeground()和stopSelf(),就可以摆脱这种通知。
发布于 2013-08-09 02:40:24
解决方案是在删除FLAG_FOREGROUND_SERVICE并仅使用0或FLAG_ONGOING_EVENT后,通知可以分别设置为可取消或不可取消。对我来说很有效,我找到的答案是helpfull Switching Android notification from FLAG_ONGOING_EVENT to cancelable
https://stackoverflow.com/questions/15022990
复制相似问题