“打瞌睡”真的有什么作用?应用程序应该更改代码吗?

时间:2015-10-12 18:12:19

标签: android android-6.0-marshmallow android-doze

背景

Android 6推出了一种名为“Doze”的内置机制,可在设备休眠时更好地处理电池。

问题

问题是,我不知道它是如何工作的,如果有的话,应该如何改变以处理这种新机制。

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

我发现了什么

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

但他们主要谈论警报:

  

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

问题

应用程序开发人员应该如何处理这种新机制?调度API会因此而以不同的方式工作吗?如何改变:

  1. 警报

  2. 背景/前台服务

  3. Wakelocks

  4. JobScheduler和GcmTaskService

  5. 在此问题上是否需要进行任何调整才能处理Android 6及更高版本?

1 个答案:

答案 0 :(得分:0)

最重要的行为变化之一是由于Doze而在空闲模式下缺乏网络连接。但是,对行为进行了大量更改 - 包括唤醒锁和JobScheduler作业。

开发人员文档非常清楚在Doze中工作的原因: http://developer.android.com/training/monitoring-device-state/doze-standby.html#restrictions

如果你正在寻找细节,请随时查看这篇关于Doze和空闲模式行为的一些观察的Gist: https://gist.github.com/ccpmark/430d4ddf3a46a02672c1