android AlarmManager 在两次之间完成一项工作

Doing a job between two times by android AlarmManager

我想通过android AlarmManager 开始和完成一项重复性任务,但我只能在指定的时间开始。 如何设置任务的结束时间 样本: 开始 8:15 完成21:45

AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE);

Calendar cal = Calendar.getInstance();
cal.add(Calendar.HOUR_OF_DAY,8);
cal.add(Calendar.MINUTE,15);

long time = cal.getTimeInMillis();

Intent i = new Intent(MainActivity.this, MyReceiver.class);

PendingIntent pi = PendingIntent.getBroadcast(MainActivity.this, 0, i, 0);

am.setInexactRepeating(AlarmManager.RTC_WAKEUP,time,pi);

您不能为警报管理器指定结束时间,但您可以检查当前时间并决定是否执行该任务。因此,如果时间过去了 21:45,您只需简单地不做任何事情或取消它。