0

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

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); 

提前感谢!

+0

试试这个链接,并申请代码, [http://stackoverflow.com/questions/3330522/how-to-cancel-this-repeating-alarm][1] [ 1]:http://stackoverflow.com/questions/3330522/how-to-cancel-this-repeating-alarm –

回答

2

您需要使用等效IntentPendingIntent创建。在这意味着设置相同的动作。顺便说一句,既然你使用了一个明确的Intent(你指定了类名),那么实际上并不需要添加一个动作。

总之:要么删除alrm.setAction(ALARM);要么在两个地方使用它。

+0

谢谢先生!有道理,我需要添加'alrm.setAction(ALARM);'到cancellingalarm活动。 – thedeepfield

0

我在做的意图全球&为我工作: -

private Intent alrm; 


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