其他分享
首页 > 其他分享> > Android警报管理器在5秒后重复,并且忽略了间隔时间

Android警报管理器在5秒后重复,并且忽略了间隔时间

作者:互联网

我正在开发一个小部件应用程序,其中我必须每分钟执行一些任务.因此,我正在使用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 documentationanswer,以获取有关Alarms的更多说明.

标签:android-widget,alarmmanager,android
来源: https://codeday.me/bug/20191111/2020110.html