我有一个家庭作业计划器应用程序,我想创建一个闹钟,提醒用户在某个特定时间前/晚的作业。我有一个名为AddNewHomework的活动,这是用户创建一个新的作业项目并将其添加到数据库的位置。这个代码然后被调用。Android AlarmManager - 从其他活动取消
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并显示存储在数据库中的所有Homeworks。如果用户长时间点击一个,那么他们可以选择将其删除,但是将其从数据库中删除将不会删除该警报。
我已经查找了可用于删除闹钟的代码,但是我还没有找到任何可以让我了解如何从这个不同的活动中取消闹钟的代码。我知道我需要使PendingIntent相同,但是我该如何做到这一点,因为我无法访问其他类的上下文。 (我不认为)。
您已尝试'mAlarm.cancel(PendingIntent);'取消警报管理器? – 2012-04-07 15:02:30
@imrankhan我有,但是我需要一个相同的PendingIntent来找到闹钟并取消它。我的问题是创建相同的PendingIntent的 – TomRichardson 2012-04-07 15:32:27