使用不同调度程序时Android Doze中的行为

使用不同调度程序时Android Doze中的行为,android,doze,Android,Doze,我正在尝试优化我们的应用程序,用于Doze和AppStandBy,并实现了一个 测试应用程序,了解使用不同后台调度器时系统的行为 但是,我对使用AlarmManager和Observable.interval()时的行为感到非常困惑 AlarmManager 我通过活动注册了一个警报,然后通过adb在Doze中带来了设备。 系统按预期运行,警报未触发 可观察到的接收。间隔时间 我通过活动启动了服务,然后在Doze中通过adb带来了设备。服务不是前台服务。 在我看来,该系统的行为与预期不符,滴答声

我正在尝试优化我们的应用程序,用于
Doze
AppStandBy
,并实现了一个 测试应用程序,了解使用不同后台调度器时系统的行为

但是,我对使用
AlarmManager
Observable.interval()时的行为感到非常困惑

AlarmManager

我通过
活动注册了一个警报,然后通过adb在Doze中带来了设备。
系统按预期运行,警报未触发

可观察到的接收。间隔时间

我通过
活动
启动了
服务
,然后在Doze中通过adb带来了设备。
服务
不是前台服务。 在我看来,该系统的行为与预期不符,滴答声不断地传递到应用程序中

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

是否有文档说明不同的调度程序如何在
Doze
AppStandBy
中工作


感谢您的建议。

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

$adb外壳转储系统电池拔出

$adb外壳输入键事件键码\u电源

adb外壳转储系统设备步骤

ScheduledThreadPoolExecutor
(由rxjava使用)调度的间隔计时器似乎不受
doze
模式的限制,而是通过
AlarmManager
do进行报警