省电模式和应用待机

16

如何在我的应用程序中判断手机是否处于Doze(省电)模式或者我的应用程序是否处于待机模式?

我能否通过使用某种订阅方法来判断这一点?


4
我在Android M预览版的文档中找到了答案。PowerManager中的isDeviceIdleMode()方法可以用于检测设备是否处于空闲模式,也可以通过广播ACTION_DEVICE_IDLE_MODE_CHANGED来进行检测。 - jlopes
1
这是针对空闲模式的。我该如何识别应用程序的待机模式? - Diffy
您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - Zsombor Erdődy-Nagy
2个回答

4
应用待机Doze模式是不同的,前者是因为没有任务而休眠,后者是因为手机处于闲置状态。只有当设备保持静止时,Doze模式才能起作用。如果您拿起手机或唤醒屏幕,则会取消Doze模式并重置定时器。除非您坐得很稳,否则当手机放在口袋里时,它永远不会启动。Doze只是让您的手机在桌子或其他地方休眠时不会耗尽电池电量。

进入待机状态的应用程序将失去所有网络访问权限,并暂停所有后台同步工作。只有在手机插入电源时和每隔一两天的几分钟内,这些限制才会暂时解除。这样,挂起的应用有机会运行任何挂起的同步作业,但它们将不被允许继续运行。高优先级推送通知也可以使应用程序从待机状态中短暂唤醒。

注意:谷歌还指出,仅仅为了使应用不受待机模式的影响而触发通知是不可接受的行为。这种行为可能导致应用被从Play商店中禁止。

有关测试Doze模式和待机状态的更多详细信息,请访问此链接:https://developer.android.com/training/monitoring-device-state/doze-standby.html

谢谢!


你能给我这个声明的来源吗 -> Google也指出,仅为了保持免于应用待机而触发通知是不可接受的。这种行为可能会导致应用被Play商店禁止。 - Shanker

0

你不需要做任何事情来管理待机模式。你只需要像往常一样管理你的生命周期。在一天中会有一个时间点,你的应用程序将被恢复(这样你就可以同步数据和恢复延迟的作业),但通知和闹钟始终会将你的应用程序从待机状态中唤醒。

看看这个:https://plus.google.com/+AndroidDevelopers/posts/76eh5MaJaXj?linkId=18331776


如果您将应用程序设为设备管理员,则它将不会待机。 - Mateen Chaudhry

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接