我有一个 Homework Planner 应用程序,我想创建一个警报,以提醒用户前一天晚上/某个时间的作业。我有一个名为 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 秒内触发并创建一个通知。
我的问题是我有另一个名为 HomeworkList 的活动,其中包含一个 ListView 并显示存储在数据库中的所有作业。如果用户长按一个,他们可以选择删除它,但是从数据库中删除它不会删除警报。
我已经寻找可以用来删除警报的代码,但是我没有找到任何可以让我了解如何从这个不同的活动中取消警报的东西。我知道我需要使 PendingIntent 相同,但是我该怎么做,因为我无法从其他类访问上下文。(我不认为)。