23

这是一个简单的问题,看到 G+ 上有一篇关于此的大量帖子(此处),并且官方文档(此处)缺乏相关信息:

当设备进入“打瞌睡”模式时,应用程序的服务会发生什么?

它对后台/前台服务(绑定/未绑定,已启动/未启动)有什么作用,有/没有部分/全部唤醒锁?

例如,为了创建一个在设备屏幕关闭时播放音频流的服务,您会怎么做?如果音频流不是来自本地文件,而是来自网络怎么办?

看到有谷歌开发者声称:

一直在运行前台服务(带有相关通知)的应用程序不受打盹限制。

- 之后进行了大量讨论,声称这并不完全正确,我认为知道特殊的后台操作应用程序应该做什么是相当令人困惑的。

4

1 回答 1

16

具有当前正在运行的前台服务的进程应该不受 Doze 的影响。绑定/未绑定、已启动/未启动和唤醒锁不会影响此白名单过程。

但是,在 Android M 设备上存在一个问题,即当前台服务与顶级活动处于同一进程中并且不正确地打瞌睡时,前台服务未正确列入白名单。

该修复程序在 AOSP上可用,并将包含在 Android N 版本中。OEM 可以将该补丁程序集成到他们生产的任何 Android M 版本中。

于 2016-06-16T21:18:11.647 回答