しばらくの間、エラーが発生していたことがわかりました。保存したいオブジェクトごとに ArrayList があります。AlarmManager に使用される保留中のインテントのリストが必要です。そのようにして、各オブジェクトから複数のアラームを削除したい場合は、リストにアクセスするだけです。 PendingIntents の配列リスト全体で単に alarmmanagername.cancel(PendingIntent) を使用します。しかし、これらのオブジェクトは格納する必要があり、格納されたオブジェクトを取得すると、Arraylist は null に設定されます。これは、オブジェクト データ ストアを保持し、NotSerializableException をスローせずにシステムに取得するために、arraylist を一時的に設定する必要があったためです。クラスの設定方法は次のとおりです。
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
私が理解していることから、トランジェントは残りのデータと一緒に保存できない場所に到達しますが、このシリアル化できないオブジェクトを残りのデータと一緒に保存するにはどうすればよいですか? nullにならずにこの配列リスト?
そうでない場合、保存したいアラームマネージャーを後でキャンセルできる簡単な方法はありますか? 複数のアラームを保存できるシンプルなアプリですが、保留中のインテントを保存する方法が必要です。