好的,就像在AlarmManager.set中一样:
如果已经为同一个IntentSender安排了警报,那么先前的警报将被取消。
如何更改此默认行为?
我只需要报警一次
如果新的警报被重组(使用相同的PengingIntent
),我需要忽略它们。
所以我需要取消新的闹钟,但之前有效。
答案 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()
。
这很好,正如我想的那样。