AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, 14);
calendar.set(Calendar.MINUTE, 30);
int weekInMillis = 7 * 24 * 60 * 60 * 1000;
alarmManager.setInexactRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),
weekInMillis, PendingIntent.getBroadcast(context, 0, new Intent(context, ReminderAlarmWakefulBroadcastReceiver.class), PendingIntent.FLAG_UPDATE_CURRENT));
上面的代码片段为每周重复2:30 PM设置警报。调整calendar用于改变闹钟响起的时间。例如,即将到来的星期一。
当闹铃响起时,它会发出一个广播,该广播将由ReminderWakefulBroadcastReceiver接收,它是一个自定义接收器,其中包含您想要在每个星期一下午2:30运行的代码。此代码还应该检查是否是时候取消报警,如果是,下面的代码将其取消:
AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
alarmManager.cancel(PendingIntent.getBroadcast(context, 0, new Intent(context, ReminderAlarmWakefulBroadcastReceiver.class));