我正在开发一个小部件应用程序,其中我必须每分钟执行一些任务.因此,我正在使用AlarmManager来实现这一点.但是,无论我设置了什么间隔时间,间隔都会每5秒重复一次.
我正在像这样使用AlarmManager:
final AlarmManager alarm = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
alarm.cancel(pendingIntent);
long interval = 60000;
alarm.setInexactRepeating(AlarmManager.ELAPSED_REALTIME, SystemClock.elapsedRealtime(), interval, pendingIntent);
提前致谢.
解决方法:
自系统启动以来,AlarmManager.ELAPSED_REALTIME用于触发警报.而AlarmManager.RTC使用UTC时间.
alarm.setInexactRepeating(AlarmManager.ELAPSED_REALTIME, SystemClock.elapsedRealtime(), interval, pendingIntent);
这将在系统启动后开始运行,并以指定的时间间隔重复.
alarm.setInexactRepeating(AlarmManager.RTC, calendar.getTimeInMillis(), interval, pendingIntent);
此操作将从现在开始运行,并以指定的间隔重复.
为了解决该问题,我建议使用AlarmManager.RTC.如果您想在1分钟后启动警报,然后再重复一次,请像下面这样传递第二个参数:
calendar.getTimeInMillis() + interval
另外请查看android documentation和answer,以获取有关Alarms的更多说明.