1

假设您希望显示带有前台服务标志的通知,并使用nm它来显示它:

Notification notification = new Notification(...);
notification.flags |= Notification.FLAG_FOREGROUND_SERVICE
nm.notify(SOME_ID, notification);

将出现通知。但是,删除它很困难,因为这似乎没有做任何事情:

nm.cancel(SOME_ID);

如何取消此通知?stopForeground 不是解决方案,因为我不在服务中。

4

2 回答 2

2

有什么解决办法吗?

如果这个问题是可信的,那么除了拨打服务电话外,没有stopForeground()。您可以通过向您的服务发送命令,startService()以便它可以调用stopForeground(). 或者,您可以创建一个小型专用Service,只需调用stopForeground()stopSelf()from onStartCommand(),只是为了摆脱此通知。

于 2013-02-22T22:05:57.867 回答
0

解决方案在删除 FLAG_FOREGROUND_SERVICE 并仅使用 0 或 FLAG_ONGOING_EVENT 后,可以分别使通知可取消或不可取消。对我有用,我发现这 很有帮助将 Android 通知从 FLAG_ONGOING_EVENT 切换为可取消

于 2013-08-08T18:40:23.700 回答