在我的应用程序中,我想要删除所有alarmManager中的pendingIntent。是否可以使用for()
循环删除所有内容?
在我的应用程序中,我想要删除所有alarmManager中的pendingIntent。是否可以使用for()
循环删除所有内容?
试一下这个。
Android:获取使用AlarmManager设置的所有PendingIntents
要取消所有警报,首先必须找到所有挂起的意图并使用它来取消警报。
如果对您有帮助,请不要错过将其接受为答案。
// 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));
}
查看 AlarmManager.cancel(PendingIntent)。
创建一个与要取消的意图匹配的PendingIntent。调用上述函数一次,将取消所有匹配的闹钟。