Android 打瞌睡在使用不同调度程序时的行为



我正在尝试针对DozeAppStandBy优化我们的应用程序,并实现了 测试应用程序以了解使用不同后台调度程序时系统的行为。

但是,我对使用AlarmManagerObservable.intervall()时的行为感到非常困惑。

警报管理器

我已经通过Activity注册了一个警报,然后通过 adb 在低电位中带来了设备。 系统按预期运行,未触发警报。

Rx-Observable.intervall

我已经通过Activity启动了Service,然后在低打瞌睡中通过 adb 带来了设备。Service不是前台服务。 在我眼中,系统的行为不符合预期,并且滴答声连续传递到应用程序。

为了证实该设备确实处于Doze我还用adb bugreport查看了电池统计数据,历史学家告诉我该设备在这段时间内处于Doze状态。

是否有任何文档记录不同的调度程序如何在DozeAppStandBy中工作?

感谢您的任何建议。

问题似乎是adb保持 CPU 运行(如果设备通过 USB 连接),即使设备通过命令adbdoze

$ adb shell dumpsys battery unplug

$ adb shell input keyevent KEYCODE_POWER

adb shell dumpsys deviceidle step

ScheduledThreadPoolExecutor(由 rxjava 使用)调度的间隔计时器似乎在doze模式下不受限制,但通过AlarmManager的警报

会受到限制。

相关内容

  • 没有找到相关文章

最新更新