2016-12-30 114 views
2

我希望我的应用每隔一段时间醒来一次。我用来设置闹钟的代码是:不醒来闹钟的闹钟

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

在闹钟处理程序中有代码用上面的代码重置闹钟。

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

有什么建议吗?

回答

2

如果您使用的是Android 6.0或更高版本的手机,则必须处理打盹机制。所以,当手机处于睡眠状态时,AlarmManager将不会立即工作。该文档说:

标准AlarmManager报警(包括setExact()和setWindow()) 推迟到下一个维护时段。

如果您需要设置火灾而在打盹,使用 setAndAllowWhileIdle()或setExactAndAllowWhileIdle()报警。

所以,只要尝试使用setExactAndAllowWhileIdle()的API> 22

文档here