【发布时间】:2016-01-08 03:58:58
【问题描述】:
Android 6 上的新 Doze 模式几乎可以禁用所有有用的后台活动。我有一个应用程序,它会定期唤醒设备(即使没有锁定屏幕),保持部分唤醒锁定,进行一些扫描并将其报告给互联网。它不是间谍应用程序 - 此操作是故意的,并且应用程序的用户知道。
现在使用Android 6 它不再起作用,因为Doze 模式阻止了与我的服务器的最终通信。
我在“电池”下发现了一个新设置,它确实允许我将我的应用程序放在那些不支持“电池优化”的应用程序的列表中。在第一次测试中,这似乎让我的应用再次运行。
经过一些额外的测试,我发现即使我的应用程序也不支持Doze,它在后台不再工作了。
此设置不是应该为特定应用禁用Doze 吗?
【问题讨论】:
-
确保您已经看到 Google 提供的关于打瞌睡模式的新指南:developer.android.com/training/monitoring-device-state/…
-
谢谢,还没有看到。几天前刚刚获得了 Android 6 更新
-
"对于一小部分用例,这可能还不够。对于这种情况,系统会提供可配置的应用白名单,这些应用可以部分免于打盹和应用待机优化。白名单可以在 Doze 和 App Standby 期间使用网络并持有部分唤醒锁。”这绝对不是真的。我已将我的应用列入白名单进行测试。但是,网络访问被阻止。
-
由于 Doze 是系统范围的模式,因此不能有每个应用程序的白名单。当 Doze 处于活动状态时,设备会进入深度睡眠模式,因此出现异常是没有意义的。
-
嗯...感谢您的评论,但我引用了 Google 官方文档。据此,应用程序可以部分退出打瞌睡和完全禁用。或者你怎么理解?关键是“部分豁免”。您的声明有误。
标签: android optimization battery android-6.0-marshmallow