AlarmManager不取消我的setRepeating警报

时间:2012-12-18 06:23:39

标签: android alarmmanager android-pendingintent android-alarms

我有一个创建重复闹钟的活动(设置闹钟),我需要从另一个活动取消该闹钟(取消闹钟)。我无法取消闹钟。我做错了什么?:

public class settingalarm...

am =(AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
Intent alrm = new Intent(context, z.class);
alrm.setAction(ALARM);
alrm.putExtra(x, x);
PendingIntent alarmIntent = PendingIntent.getBroadcast(context, 0, alrm, 0);
am.setRepeating(AlarmManager.RTC_WAKEUP, 0, 30000, alarmIntent);

我有另一个需要取消现有警报的活动:

public class cancelingalarm...

am =(AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
Intent alrm = new Intent(context, z.class);
PendingIntent alarmIntent = PendingIntent.getBroadcast(context, 0, alrm, 0);
am.cancel(alarmIntent);

提前致谢!

2 个答案:

答案 0 :(得分:2)

您需要为您创建的Intent使用等效的PendingIntent。在这意味着设置相同的动作。顺便说一句,因为您使用的是显式Intent(指定类名),所以实际上也不需要添加操作。

简而言之:要么删除alrm.setAction(ALARM);,要么在两个地方都使用它。

答案 1 :(得分:0)

我正在制作Global& amp;为我工作: -

private Intent alrm;


alrm = new Intent(context, z.class);