我在我的应用程序中使用AlarmManager。第一步是支持一个警报,该警报每天从x时钟开始,并以n分钟的间隔发射。这是它的工作原理:
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.set(Calendar.HOUR_OF_DAY, fromHours);
calendar.set(Calendar.MINUTE, fromMinutes);
long fromTime = calendar.getTimeInMillis();
Intent intent = new Intent(context, MyAlarmReceiver.class);
intent.putExtra(ID, id);
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, id, intent, 0);
AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, fromTime, 1000 * 60 * intervalMinutes, pendingIntent);
但是现在在第二步中我希望支持设置警报停止时的每日结束时间。所以我需要实现类似的东西:
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, fromTime, toTime, 1000 * 60 * intervalMinutes, pendingIntent);
我该怎么做?当System.currentMillis() > toTime
无法正常工作时取消定时器,因为这将永久取消定时器。但是第二天它又要开火了。