Android 使用一个报警管理器取消另一个报警管理器

Android 使用一个报警管理器取消另一个报警管理器,android,alarmmanager,Android,Alarmmanager,我正在做一个提醒应用程序。它将按时间间隔持续提醒一段时间。例如,每五分钟提醒一次,持续一小时。在这种情况下,我试图设置两个警报。一个用于每五分钟提醒一次,另一个用于在一小时后取消提醒警报。这是我的密码 private void createIntervalNotification(int reminder, int dhour, int dminute){ //reminder in min int interval = (reminder)*60*1000; AlarmMana

我正在做一个提醒应用程序。它将按时间间隔持续提醒一段时间。例如,每五分钟提醒一次,持续一小时。在这种情况下,我试图设置两个警报。一个用于每五分钟提醒一次,另一个用于在一小时后取消提醒警报。这是我的密码

private void createIntervalNotification(int reminder, int dhour, int dminute){ //reminder in min
    int interval = (reminder)*60*1000;
    AlarmManager am = (AlarmManager) MainActivity.this.getSystemService(MainActivity.this.ALARM_SERVICE);
    am.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime()+interval, interval, getPendingIntent(this,REMINDER_ID));

    int duration = (dhour*60 + dminute)*60*1000;
    am.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime()+duration,getPendingIntent(this,CANCEL_REMINDER_ID));
}

private static PendingIntent getPendingIntent(Context ctxt, int id) {
    Intent intent1 = new Intent(ctxt, AlarmReceiver.class);
    PendingIntent pendingIntent = PendingIntent.getBroadcast(ctxt, id,intent1, PendingIntent.FLAG_UPDATE_CURRENT);
    return pendingIntent;
}
我有一些问题要问(设置提醒时间为5分钟,持续时间为1小时)

1) 我能用我的方法做这件事吗?使用一个警报取消另一个警报

2) 两个警报可以共享一个广播接收器吗?如果是,如何区分由哪个报警调用


3) 是否有其他方法可以做到这一点?

取消报警与设置报警几乎完全相同。您只需在AlarmManager上调用与创建不同的方法来取消。只需确保AlarmManager中的挂起意图和广播ID相同即可


通过在意图上设置额外选项来区分警报。

重复警报可以在开始时进行检查-如果一个小时过去了,那么它应该自行取消计划。