我希望我的应用程序经常唤醒。我用来设置闹钟的代码是:
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/