如何删除或取消AlarmManager中的所有pendingIntent?

4

在我的应用程序中,我想要删除所有alarmManager中的pendingIntent。是否可以使用for()循环删除所有内容?

3个回答

2

2
// set up alarm 
List<PendingIntent> mPendingIntentList = new ArrayList<PendingIntent>();
Intent alarmIntent = new Intent(getApplicationContext(),Receiver.class);
alarmIntent.setData(Uri.parse("custom://" + alarm.ID));
alarmIntent.setAction(String.valueOf(alarm.ID));
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);

PendingIntent displayIntent = PendingIntent.getBroadcast(getContext(), 0,                  alarmIntent, 0);

// add pending intent in list
mPendingIntentList.add(displayIntent );
alarmManager.set(AlarmManager.RTC_WAKEUP, alarmDateTime, displayIntent);



    //cancel all alarms
    for(int idx = 0 ; idx < mPendingIntentList.size() ; idx++){
       alarmManager .cancel(mPendingIntentList.get(idx));
    }

代码已经注释。请现在检查并让我知道是否有任何问题 :) - Anurag Aggarwal

-2

5
如何获取每个PendingIntent? - Roel
2
@Roel,你不需要这样做。你只需要一个匹配你的闹钟的待处理意图,AlarmManager.clancel()将取消所有匹配的意图。 - CompEng88

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接