首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >打瞌睡模式,电池优化白名单,AlarmManager比9分钟更频繁

打瞌睡模式,电池优化白名单,AlarmManager比9分钟更频繁
EN

Stack Overflow用户
提问于 2018-07-18 10:12:49
回答 1查看 2.2K关注 0票数 3

我正在创建一个应用程序来连接BT设备来收集健康数据(即:体温)。

传感器周期性的睡眠和唤醒只在有限的时间窗口连接。

我曾尝试创建AlarmManager,它使用setExactAndAllowWhileIdle()触发前台服务,并且按预期工作时间超过9分钟,

但在9分钟以下,它会进入打瞌睡模式,不会触发AlarmManager BroadcastReceiver。

从文档中,我不明白向电池优化白名单中添加应用程序是否允许AlarmManager触发更多的案例

例如,白名单上的应用程序的作业和同步将被推迟(在API级别23及以下),并且它的常规AlarmManager警报不会触发。

正常的警报是什么?setExactAndAllowWhileIdle()是正则的吗?

如有任何澄清,将不胜感激。

编辑:

我知道setExactAndAllowWhileIdle()会在打瞌睡模式下触发超过9分钟的事件,问题是在白名单中添加应用程序是否会让它更频繁地触发?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-18 10:17:14

正常的警报是什么?setExactAndAllowWhileIdle()是正则的吗?

不是的。setExactAndAllowWhileIdle()是不正常的。常规警报可以是通过AlarmManager ()和setWindow()设置的警报。

但在9分钟以下,它会进入打瞌睡模式,不会触发AlarmManager BroadcastReceiver。

它对你设置警报的频率有限制。

基于文档

为了减少滥用,对于特定的应用程序,这些警报发出的频率是有限制的。在正常的系统操作下,它将不超过每分钟发出这些警报(此时每个这样的待定警报都发出);当处于低功耗空闲模式时,时间可能会大大延长,例如15分钟.

您可以参考打瞌睡限制,它说:

标准的AlarmManager警报(包括setExact()和setWindow())被推迟到下一个维护窗口。

  • 如果您需要在Doze中设置触发警报,请使用setAndAllowWhileIdle()或setExactAndAllowWhileIdle()。
  • setAlarmClock()设置的警报器继续正常工作-系统在警报器开火前不久退出Doze。

白名单的

白名单中可用的应用程序部分不受Doze和App备用优化的限制。这并不意味着他们可以在打瞌睡模式下完全访问并执行任务。白名单的应用程序可以在Doze和App备用期间使用网络并持有部分唤醒锁。然而,其他的限制,如不同的工作,标准警报触发器仍在实施。

注意:,你应该用检查可接受的用途来白名单一个应用程序。

Google政策禁止应用程序请求直接豁免安卓6.0+ (Doze和App备用)的电源管理功能,除非该应用的核心功能受到不利影响。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51399353

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档