Android Alarmmanager多次启动
我以前问过这个问题,天知道我已经尝试了所有建议。我试图让一个服务每天在给定的时间执行一次。我可以设置闹钟和广播。但是由于某种原因,当警报被触发时,比如说13h30,它会以不规则的间隔被触发。唯一能正常工作的就是在正确的时间启动警报,但是它会在一整天都启动,这让我发疯。请帮忙Android Alarmmanager多次启动,android,alarmmanager,Android,Alarmmanager,我以前问过这个问题,天知道我已经尝试了所有建议。我试图让一个服务每天在给定的时间执行一次。我可以设置闹钟和广播。但是由于某种原因,当警报被触发时,比如说13h30,它会以不规则的间隔被触发。唯一能正常工作的就是在正确的时间启动警报,但是它会在一整天都启动,这让我发疯。请帮忙 PendingIntent reviewsPendingIntent = PendingIntent.getBroadcast(this,0,new Intent(this,ReviewReceiver.class)
PendingIntent reviewsPendingIntent = PendingIntent.getBroadcast(this,0,new Intent(this,ReviewReceiver.class),PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager alarmManager = (AlarmManager)(this.getSystemService(Context.ALARM_SERVICE));
Calendar cur_cal = new GregorianCalendar();
cur_cal.setTimeInMillis(System.currentTimeMillis());
Random random = new Random();
int low = 7;
int high = 22;
int hour = random.nextInt(high - low) + low;
int minute = random.nextInt(60 - 10) + 10;
Calendar cal = new GregorianCalendar();
cal.set(Calendar.HOUR_OF_DAY, 13);
cal.set(Calendar.MINUTE,15);
cal.set(Calendar.SECOND,5);
cal.set(Calendar.MILLISECOND,0);
if(cal.getTimeInMillis() >= System.currentTimeMillis() ) {
Log.i(TAG,"Set today");
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), AlarmManager.INTERVAL_DAY, reviewsPendingIntent);
}else{
Log.i(TAG,"Set tomorrow");
cal.set(Calendar.DATE,1);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), AlarmManager.INTERVAL_DAY, reviewsPendingIntent);
}
注意,当我收到这个消息时,我打算用随机整数来设置我的警报
工作正常
您需要
cal.add(日历日期,1)代码>,而不是校准设置(日历日期,1)代码>。您也可以考虑使用<代码> ADB Shell DunPysActudio<代码>来查看是否有几个警报被调度。每次创建时都会调用您的报警代码,如果您正在使用该服务,它将再次被称为“添加时间<代码> <代码> >。启动一个警报只有额外的是与意图检查这一点,我刚刚做了,并通过警报列表,我发现我的应用程序的警报@我已确保不会在每次调用onCreate时重新创建报警。。我已经设置了一些标志来防止这种情况发生。你是否找到了解决问题的方法,因为我也面临着同样的问题。