Android M(预览)打盹模式和AlarmManager

时间:2015-10-02 09:18:31

标签: android emulation android-6.0-marshmallow

我正试图在操作系统进入打盹模式时测试我们的Android应用程序的行为。我正在使用运行Android API 23(修订版1)的模拟器。 应用程序使用类型为ELAPSED_REALTIME_WAKEUP的方法setInexactRepeating通过AlarmManager启动服务。我将警报设置为大约每三分钟启动一次(仅用于测试目的)。经过几次尝试(官方指南非常不清楚),我通过锁定模拟器的屏幕并运行dumpsys建议的命令,成功地将模拟器置于IDLE状态。 当设备处于空闲状态时,我仍然可以看到警报正在启动服务。 这不应该是预期的行为。我期待警报停止。 这是一个错误吗?或者我错过了什么?

1 个答案:

答案 0 :(得分:0)

对于下面的测试用途代码。

adb shell dumpsys deviceidle enable adb shell dumpsys battery unplug adb shell dumpsys deviceidle step adb shell dumpsys deviceidle force-idle

使用setAndAllowWhileIdle强制智能手机唤醒。

在我的情况下,我使用它:

if (android.os.Build.VERSION.SDK_INT > 22) { am.setAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), sender); } else { am.setRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), AlarmManager.INTERVAL_DAY, sender); }

我相信预期会停止报警。