android - 闹钟没有唤醒手机

标签 android alarmmanager

我希望我的应用程序经常唤醒。我用来设置闹钟的代码是:

AlarmManager alarmManager = (AlarmManager) getSystemService( Context.ALARM_SERVICE );
alarmManager.setExact( AlarmManager.RTC_WAKEUP, System.currentTimeMillis( ) + pollInterval, pendingIntent );

在alarm handler中有代码可以用上面的代码重置alarm。

问题是当手机处于深度 sleep 状态时(例如,在凌晨时分),闹钟不会响。

有什么建议吗?

最佳答案

如果你使用的是Android 6.0以上的手机,就需要处理Doze机制。因此,当手机处于 sleep 状态时,AlarmManager 不会立即工作。文档说:

Standard AlarmManager alarms (including setExact() and setWindow()) are deferred to the next maintenance window.

If you need to set alarms that fire while in Doze, use setAndAllowWhileIdle() or setExactAndAllowWhileIdle().

所以,只需尝试对 API > 22 使用 setExactAndAllowWhileIdle()

文档 here

关于android - 闹钟没有唤醒手机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41401923/

相关文章:

java - Epson SDK 版本 2 收银抽屉适用于 Android?

java - 如何在应用程序关闭后取消闹钟

java - api类似于黑莓android中的AlarmManager

android - 在 Android 中创建定时通知(例如事件)

android - 未决 Intent/警报第二次不起作用

java - Android Froyo 设置铃声

android - 如何删除自定义 AlertDialog 中的边框?

java.lang.IllegalStateException : Could not find a method onClick(View) 错误

android - 设置初始屏幕方向

android - 如何检测通知是否已被驳回?