Android如何在设置新闹钟时取消之前的闹钟

时间:2016-06-22 11:27:04

标签: android alarmmanager alarm

好的,就像在AlarmManager.set中一样:

  

如果已经为同一个IntentSender安排了警报,那么先前的警报将被取消。

如何更改此默认行为?
我只需要报警一次 如果新的警报被重组(使用相同的PengingIntent),我需要忽略它们。

所以我需要取消新的闹钟,但之前有效。

2 个答案:

答案 0 :(得分:1)

我不知道这样做的正确方法。

解决方法是在发送之前知道挂起的意图是否已由AlarmManager安排。

使用SharedPreference存储描述意向日期的时间戳。在将另一个PendingIntent发送到AlarmManager之前检查时间戳是否已通过。

答案 1 :(得分:1)

好的,明白了。

我创建的PendingIntent没有FLAG选项 然后我有方法:

private boolean isPresent() {
    return PendingIntent.getService(context, 0, myIntent, PendingIntent.FLAG_NO_CREATE) != null;
}

当我试着去做设置新Alarm - 首先我检查 - 这是PendingIntent存在 并且,当Alarm触发时 - 我会通过调用myPendingIntent手动取消cancel()

这很好,正如我想的那样。