我正在尝试使用AlarmManager在我设定的闹钟时间执行一些任务。我知道必须使用相同的PendingIntent来创建和取消闹钟。但是问题是,我在“ClassA”类中创建闹钟,稍后在“ClassB”类中取消闹钟。这就让我想知道每个类中要广播的意图是否相同,因为它们在不同的类中使用“不同的上下文”。它们可以被视为相同的PendingIntent并且我能够取消闹钟吗?如果不能,如何使它们相同?在“ClassA”类(扩展BroadcastReceiver)中创建闹钟的方法如下:
alarmMgr = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(context, myReceiver.class);
PendingIntent pender = PendingIntent.getBroadcast(context, codeNum, intent, 0);
alarmMgr.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),
AlarmManager.INTERVAL_DAY, pender);
取消"ClassB"(继承自BaseAdapter)中的警报:
alarmMgr = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(context, myReceiver.class);
PendingIntent pilocal = PendingIntent.getBroadcast(context, codeNum, intent, 0);
pilocal.cancel();
alarm.cancel(pilocal);