提问者:小点点

Android O:Service. stop Foreground等效


我目前正在尝试制作某种音乐播放器应用程序。为了播放,我创建了一个单独的服务。因为我想让它一直播放,所以我打电话给Service. startForeground()。在为Android O(SDK级别27)编译时,由于Android的“新”后台执行限制,我必须使用Context.startForeground Service()。

这工作得很好,但是当用户暂停播放时,我希望通知可以被忽略。过去,我可以调用stop Foreground(),但这对Android O没有影响。还有其他方法可以在后台和前台服务之间切换吗?或者有其他机会实现这种行为吗?像Google Play Music这样的应用程序正在使用这种通知模式,但是它们是怎么做到的呢?


共2个答案

匿名用户

这是因为我使用了错误的方法。你必须使用stop Foreground(STOP_FOREGROUND_DETACH)而不是stop Foreground(true)

匿名用户

我遇到了同样的问题并尝试了许多解决方案,但后来我知道我在AndroidManifest. xml文件中给予了一些没有用的权限,当我评论它们时,它工作正常。

注释的权限如下

<!-- <uses-permission android:name="android.permission.POST_NOTIFICATIONS"/> -->
<!-- <uses-permission android:name="android.permission.GET_ACCOUNTS" /> -->
<!-- <uses-permission android:name="android.permission.READ_CONTACTS" /> -->
<!-- <uses-permission android:name="android.permission.VIBRATE"/> -->
<!-- <uses-permission android:name="android.permission.READ_PHONE_STATE"/> -->
<!-- <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/> -->