我关闭了运行
Android M的Nexus 5设备的屏幕显示,然后发出以下命令.
im17-x0:~ r.j$adb shell dumpsys battery unplug im17-x0:~ r.j$adb shell dumpsys deviceidle step Stepped to: IDLE_PENDING im17-x0:~ r.a$adb shell dumpsys deviceidle step Stepped to: SENSING im17-x0:~ r.a$adb shell dumpsys deviceidle step Stepped to: IDLE
现在理想情况下,我的设备应该进入空闲模式.但是在启动CountDownTimer之前将其置于空闲模式并且仍然运行.
此外,我的手机仍然存在网络访问(使用this功能检查)
为什么设备不会打瞌睡模式?从here以后的待机模式选项也有同样的效果.为什么?
在那个定时器中,如果我检查isDeviceIdleMode(),它返回true.
解决方法
我在这里有几个技巧:
我建议通过实际尝试网络呼叫并登录来测试网络访问.在空闲模式下,以编程方式检查网络访问有一个记录的错误:https://code.google.com/p/android-developer-preview/issues/detail?id=3164
检查空闲/打盹模式
没有太多的文档,但有一些方法不会被Doze模式静音.使用CountDownTimer可能是其中之一.我会尝试使用setExact()设置闹钟,这在应用程序处于空闲模式时已被记录为无效.如果您可以在闹钟触发时记录一些内容,那么绝对不会处于空闲模式.
让我知道如何为你工作!