Android AlarmManager中消除歧义的报警

Android AlarmManager中消除歧义的报警,android,alarmmanager,Android,Alarmmanager,我有两个闹钟: pendingIntent = PendingIntent.getBroadcast(context, 1001, intent, PendingIntent.FLAG_UPDATE_CURRENT); alarmManager.set(alarmType, cal.getTimeInMillis(), pendingIntent); //1 alarmManager.set(alarmType, cal.getTimeInMillis()-delaytime, pendingI

我有两个闹钟:

pendingIntent = PendingIntent.getBroadcast(context, 1001, intent, PendingIntent.FLAG_UPDATE_CURRENT);
alarmManager.set(alarmType, cal.getTimeInMillis(), pendingIntent); //1
alarmManager.set(alarmType, cal.getTimeInMillis()-delaytime, pendingIntent); //2
我想取消警报:

pendingIntent = PendingIntent.getBroadcast(context, 1001, intent, PendingIntent.FLAG_UPDATE_CURRENT);
alarmManager.cancel(pendingIntent);

不明确的是哪个警报被删除了,1还是2?

如果PendingEvent的意图相同,那么您只有一个警报。如果alarmManager的PendingEvent的意图不同,则有两个报警。

PendingEvent的意图相同。但报警时间不同。如果目的相同,则报警与另一个相同。例如,我有一个意图,它的名字是test_intent。我创建PenginIntent就是为了这个目的,PenginIntent的名字是test1_Peding,第二个名字是test2_pending。当我创建带有这些挂起事件的报警并使用标志\u UPDATE\u CURRENT时,我只创建了一个报警。由于此test1_pendign设置了test2_pending设置后的报警,但覆盖了pending_意图(test1_pending)之前的报警。AlarmManager的标志等于当前的标志。