首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android (预览) Doze模式和AlarmManager

Android (预览) Doze模式和AlarmManager
EN

Stack Overflow用户
提问于 2015-10-02 09:18:31
回答 1查看 777关注 0票数 6

当操作系统进入Doze模式时,我正在尝试测试我们的Android应用程序的行为。我正在使用运行Android 23的模拟器(第1版)。应用程序使用类型为AlarmManager的setInexactRepeating方法通过ELAPSED_REALTIME_WAKEUP启动服务。我把警报器设置为大约每三分钟一次(仅为测试目的)。经过几次尝试(官方指南非常不清楚),我成功地将模拟器锁定在模拟器的屏幕上,并运行虚拟脚本建议的命令,从而使模拟器处于空闲状态。当设备空闲时,我仍然能够看到警报启动服务。这不应该是预期的行为。我正等着警报停止呢。这是个虫子吗?还是我漏掉了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-14 15:26:20

用于测试,请使用下面的代码。

代码语言:javascript
复制
adb shell dumpsys deviceidle enable 
adb shell dumpsys battery unplug
adb shell dumpsys deviceidle step
adb shell dumpsys deviceidle force-idle

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

在我的例子中,我用这个:

代码语言:javascript
复制
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);
}

我相信,所期待的是警报被停止。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32904106

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档