前夜/特定の時間に宿題をユーザーに思い出させるアラームを作成したい宿題プランナーアプリケーションがあります。ユーザーが新しい宿題項目を作成し、データベースに追加する AddNewHomework というアクティビティがあります。次に、このコードが呼び出されます。
Intent i = new Intent(this, AlarmNotificationReceiver.class);
i.putExtra("title", title);
PendingIntent pi = PendingIntent.getBroadcast(this.getApplicationContext(), (int) id, i, 0);
AlarmManager mAlarm = (AlarmManager) getApplicationContext().getSystemService(Context.ALARM_SERVICE);
mAlarm.set(AlarmManager.RTC_WAKEUP,
System.currentTimeMillis() + 10 * 1000, pi);
これにより、10 秒でトリガーされる新しいアラームが作成され、通知が作成されます。
私の問題は、ListView を含み、データベースに保存されているすべての宿題を表示する HomeworkList という別のアクティビティがあることです。ユーザーが 1 つを長くクリックすると、それを削除するオプションがありますが、データベースから削除してもアラームは削除されません。
アラームを削除するために使用できるコードを探しましたが、この別のアクティビティからアラームをキャンセルする方法を理解できるものは見つかりませんでした。PendingIntent を同じにする必要があることはわかっていますが、他のクラスからコンテキストにアクセスできないため、これを行うにはどうすればよいですか。(私は思わない)。