我已经有一段时间了,我刚刚发现是导致它的错误。我有一个 ArrayList,对于我想要保存的每个对象,我想要一个用于 AlarmManager 的待处理意图列表,这样如果我想从每个对象中删除多个警报,我所要做的就是访问列表的 PendingIntents 并简单地在 arraylist 中使用 alarmmanagername.cancel(PendingIntent) 。但是这些对象需要存储,并且在检索存储的对象时,arraylist 设置为 null,因为我必须将其设置为瞬态才能将对象数据存储并检索到系统中,而不会引发 NotSerializableException。以下是班级的设置方式:
public class ListObject implements Serializable{
public String objectname, startampm, stopampm; //name of schedule and am or pm
private boolean[] Days = {
false, //monday
false, //tuesday
false, //and soforth
false,
false,
false,
false};
private int starthour, startminute, stophour, stopminute; //times from TimePicker
public transient ArrayList<PendingIntent> pendintentlist = new ArrayList<PendingIntent>();; //ids for each of the alarms
private int listalarmid; //FOR WHEN COME BACK: maybe store pending intents instead of the array of ints above?
private boolean vibrate, activated;
private boolean nextday = false; //bool for if schedule goes into next day
据我了解,瞬态使它无法与其余数据一起保存,但是,我如何才能将这个不可序列化的对象与其余数据一起保存,以便在检索到它时,我可以访问这个数组列表没有它变成空?
如果没有,是否有更简单的方法可以稍后取消我想要保存的警报管理器?这是一个简单的应用程序,可让您保存多个警报,我只需要一种保存其未决意图的方法。