我正在寻求停止/关闭媒体播放器服务的前台通知,这与Google针对Google音乐的实施非常相似。如何删除Android棒棒糖中的前景通知?
例如在Google音乐中,如果您正在播放音乐,则无法删除通知。但是,如果您暂停音乐,它可以。
这与Android 4.4的实现方式完全不同,其中通知仅在您离开应用程序时启动,并在您重新进入应用程序时自动删除。我无法看到如何实现这一点,无论是考虑服务的要求来通知。
任何帮助将不胜感激。
我正在寻求停止/关闭媒体播放器服务的前台通知,这与Google针对Google音乐的实施非常相似。如何删除Android棒棒糖中的前景通知?
例如在Google音乐中,如果您正在播放音乐,则无法删除通知。但是,如果您暂停音乐,它可以。
这与Android 4.4的实现方式完全不同,其中通知仅在您离开应用程序时启动,并在您重新进入应用程序时自动删除。我无法看到如何实现这一点,无论是考虑服务的要求来通知。
任何帮助将不胜感激。
如何在Android Lollipop中删除前景notifiactio?
您可以通过调用您的Service
调用startForeground()
stopForeground()
删除自己的前景Notification
。
例如,在Google音乐中,如果您正在播放音乐,则通知无法被删除。但是,如果您暂停音乐,它可以。
根据音乐是否播放,他们正在更新Notification
的setOngoing()
值。
您也可以删除一个棘手的方式通知:
startForeground(1, new Notification());
startForeground(1, new Notification());
并立即停止其结果第一个服务仍然在前台运行,但通知已停止,谢谢停止第二项服务。我意外发现它:)。
这是一个很棒的技巧,但不幸的是它已经在Android 7.1中进行了修补。 – Sam 2016-12-09 17:51:49
所以这个想法是,如果你回来的应用程序,那么没有必要有一个通知运行,因为你实际上使用的应用程序? Google在Android Lollipop中使用Google音乐的方式不同,无论您是否在应用程序中,通知始终都会运行。我知道这可能是一件微不足道的事情,但在开发我的应用程序时,我遇到了它并想更好地理解为什么。并感谢您的答复,非常感谢。 – 2014-10-28 10:44:24
@DumonKri:如果您的用户界面位于前台,前台服务不会为您的进程优先级添加任何内容。而且,如果您的用户界面位于前台,用户可能有更好的方式通过该用户界面与您的应用进行交互,而不是通过“通知”进行交互。 – CommonsWare 2014-10-28 10:51:08
谢谢@CommonsWare,这显然是有道理的。谷歌在Android 4.4和5版本中的谷歌音乐本身就以不同的方式实施它,这让我感到困惑。也许它会随着Lollipop应用程序的更新而改变。 – 2014-10-29 11:16:29