防止Android杀死暂停的音频服务

时间:2018-08-22 19:33:12

标签: android android-service android-mediaplayer

从Android API 26开始,Android系统要求"performs some operation that is noticeable to the user"自己注册为前台服务的服务。并且“前台服务必须显示通知”。

我有一个播放音频文件的服务。暂停播放后,用户应该可以将通知滑动(与Google Play音乐应用一样)。但是,如果我致电stopForeground(),则我的服务会在几分钟之内被系统杀死。

暂停播放时,如何允许清除通知?

1 个答案:

答案 0 :(得分:2)

  

但是,如果我调用stopForeground(),那么我的服务将在几分钟之内被系统杀死

在Android 8.0+上,一分钟后它将停止。

  

暂停播放时,如何允许清除通知?

第0步:将您真正需要的任何数据(例如,跟踪和播放位置)保存到磁盘

第1步:致电stopForeground()

步骤2:发出一个新的通知,其中未设置“正在进行”标志(即setOngoing(false),这是默认设置),以反映您的暂停状态

第3步:理想情况下,请致电stopSelf(),以使服务耗尽内存,并将您的流程重要性降低到正常水平,而不是等待Android停止服务的时间