4

背景

Android 6 引入了一种称为“Doze”的内置机制,以便在设备休眠时更好地处理电池。

问题

问题是,我看不出它是如何工作的,以及应用程序应该如何改变以处理这种新机制,如果有的话。

显然,这取决于您在代码中的内容,但我应该寻找什么?

我发现了什么

我发现 2 个网页谈论这个:

但他们大多谈论警报:

为了帮助安排闹钟,Android 6.0(API 级别 23)引入了两个新的 AlarmManager 方法:setAndAllowWhileIdle() 和 setExactAndAllowWhileIdle()。使用这些方法,您可以设置即使设备处于打瞌睡状态也会触发的警报。

问题

应用程序开发人员应该如何处理这种新机制?调度 API 会因此而有所不同吗?需要的更改如何:

  1. 警报

  2. 后台/前台服务

  3. 唤醒锁

  4. JobScheduler 和 GcmTaskService

在这个问题上是否需要进行任何调整来处理 Android 6 及更高版本?

4

1 回答 1

0

最重要的行为变化之一是由于打盹而在空闲模式下缺乏网络连接。但是,行为有很多变化——包括唤醒锁和 JobScheduler 作业。

开发人员文档非常清楚在打瞌睡时什么不起作用:http: //developer.android.com/training/monitoring-device-state/doze-standby.html#restrictions

如果您正在寻找细节,请随时查看我写的关于打瞌睡和空闲模式行为的一些观察的这个要点: https ://gist.github.com/ccpmark/430d4ddf3a46a02672c1

于 2015-10-16T16:19:52.160 回答