【发布时间】:2022-03-25 07:06:40
【问题描述】:
Lollipop 中的新 Android MediaStyle 通知没有关闭按钮。看起来 Google Code 上已经存在一个错误。
在解决该错误之前,有没有人知道什么是解决此问题的好方法?
我们应该延迟切换到 MediaStyle 吗?或者使用其中一项操作作为关闭按钮?
【问题讨论】:
标签: android android-5.0-lollipop
Lollipop 中的新 Android MediaStyle 通知没有关闭按钮。看起来 Google Code 上已经存在一个错误。
在解决该错误之前,有没有人知道什么是解决此问题的好方法?
我们应该延迟切换到 MediaStyle 吗?或者使用其中一项操作作为关闭按钮?
【问题讨论】:
标签: android android-5.0-lollipop
补充@ianhanniballake 的回答:
对于棒棒糖前使用:
notificationBuilder.setStyle(new NotificationCompat.MediaStyle().setShowCancelButton(true).setCancelButtonIntent(createPlayIntent());
对于棒棒糖后:
要启动媒体播放器通知,必须使用startForeground() 以Foreground Service 启动媒体服务。现在的问题是这个Service 是不可解雇的。即使我们设置了setOngoing(false)。
遵循的最佳做法是使服务在暂停状态下可关闭。为此,当您的媒体服务收到暂停状态回调时,请致电 stopForeground(false)。这将停止服务,但使通知保持活动状态。现在可以将其关闭。
编码愉快。
【讨论】:
似乎运作良好的一种机制是在播放音乐时使通知持续进行,并在音乐暂停时使其不持续(允许滑动关闭)。这似乎是谷歌音乐already uses的技术。
【讨论】:
stopForeground(false) 根本不起作用。我没有在我的通知上设置任何标志,它仍然不能被解雇。如果您有时间,您能否扩展您的答案以包含一个简短的示例?
.setOngoing(false)。
startForeground() 启动服务,您将无法关闭通知。您应该只使用普通的startService() 来启动您的服务,然后显示您的通知。然后你可以根据需要使用.setOngoing()。
NotificationCompat.MediaStyle 可以解决 Lollipop 之前的版本。