Android AlarmManager setRepeating忽略间隔
我使用此代码在我们的业务应用程序中设置警报:Android AlarmManager setRepeating忽略间隔,android,alarmmanager,Android,Alarmmanager,我使用此代码在我们的业务应用程序中设置警报: private void setupAlarm() { final Context c = getApplicationContext(); final AlarmManager alarm = (AlarmManager) c.getSystemService(Context.ALARM_SERVICE); final Intent i = new Intent(c, AlarmReceiver.class
private void setupAlarm() {
final Context c = getApplicationContext();
final AlarmManager alarm =
(AlarmManager) c.getSystemService(Context.ALARM_SERVICE);
final Intent i = new Intent(c, AlarmReceiver.class);
final PendingIntent sender =
PendingIntent.getBroadcast(c, 0, i, PendingIntent.FLAG_CANCEL_CURRENT);
final long startFromNow = System.currentTimeMillis()+10000;
final long timer = 5*60*1000;
alarm.setRepeating(AlarmManager.RTC_WAKEUP, startFromNow, timer, sender);
}
我无法理解为什么不遵守报警间隔。第一次警报在10秒后启动(如预期),之后每隔2分钟和一点(122秒到127秒)启动一次,这是错误的。间隔是5分钟,还是我错了
我在一个更简单的应用程序中使用了这段精确的代码:一个设置重复警报的活动,接收器只创建一个日志。它在那里工作
是什么让AlarmManager的行为如此不同?
我曾尝试:
- 使用
并在报警接收器中使用另一个set()
超过5分钟:2分钟后启动set()
- 使用
代替setInexactRepeating()
:2分钟后启动setRepeating()
任何见解都会有所帮助。谢谢 立即想到的建议-确保不要在其他地方设置具有相同意图和不同值的警报。目的不必是相同的对象,请参阅AlarmManager中的set methods文档