我正在创建一个调度程序应用程序。我正在使用AlarmManager
and设置多个事件PendingIntent
。我使用以下方法:
在这里我声明PendingIntent
数组:
public static ArrayList <PendingIntent> intentArray= new ArrayList <PendingIntent>();
在这里,我向数组添加意图:
PendingIntent pendingIntent = PendingIntent.getBroadcast(
EditScheduleActivity.this, intentid, notifyintent,
PendingIntent.FLAG_UPDATE_CURRENT); //intent id is unique
alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),
pendingIntent);
MainActivity.intentArray.add(pendingIntent);
在这里,我正在清除警报:
EditScheduleActivity.alarmManager.cancel(intentArray.get(selecteditemid_int));
intentArray.remove(selecteditemid_int);
但是当我清除警报时,我得到一个ArrayIndexOutOfBoundsException
,我认为问题是当我重新启动应用程序时,意图数组列表被重新初始化并引发异常。如何通过保持意图数组列表不重新初始化来克服这个问题?