如何取消每天重复的闹钟设置

时间:2011-10-17 06:20:50

标签: android alarm

我正在处理日历活动。

将事件添加到日历时,我正在使用警报管理器

创建警报

这很好。

我需要在删除活动时取消该特定事件的提醒。

我正在设置这样的警报。

AlarmManager amgr=(AlarmManager)getSystemService(Context.ALARM_SERVICE);

Intent intent=new Intent(AmdAddEvent.this, RepeatingAlarmReceiver.class);
intent.putExtra("time", mAlarmTime);
PendingIntent pendingIntent=PendingIntent.getBroadcast(AmdAddEvent.this,(int) mAlarmTime,intent,PendingIntent.FLAG_CANCEL_CURRENT);


amgr.setRepeating(AlarmManager.RTC_WAKEUP, mAlarmTime,AlarmManager.INTERVAL_DAY, pendingIntent);

如何在删除活动时取消提醒。

请帮我解决这个问题

先谢谢

3 个答案:

答案 0 :(得分:0)

amgr.cancel(Pending Intent); ,

您可以使用此功能取消待处理的警报事件。

AlaramManager Cancel

答案 1 :(得分:0)

如果您正在编写删除其他类中的事件,那么您需要使用相同的ID(在您的情况下,它是(int) mAlarmTime)再次创建一个intent,然后您可以取消特定的警报intent.else你可以使用alarmManager的cancel()命令。输入以下代码行,删除警报事件:

try
{       
    Intent intent=new Intent(AmdAddEvent.this, RepeatingAlarmReceiver.class);
    intent.putExtra("time", mAlarmTime);
    PendingIntent pendingIntent=PendingIntent.getBroadcast(AmdAddEvent.this,(int) mAlarmTime,intent,PendingIntent.FLAG_CANCEL_CURRENT);

    amgr.cancel(pendingIntent);
}
catch (Exception e) {
    // TODO: handle exception
}

答案 2 :(得分:0)

不要使用getBroadcast()方法,它不起作用。

使用以下代码创建警报以创建活动:

pendingIntent = PendingIntent.getActivity(RemindingService.this, day, intent, PendingIntent.FLAG_UPDATE_CURRENT |PendingIntent.FLAG_ONE_SHOT);

使用以下代码随时取消警报:

pendingIntent = PendingIntent.getActivity(RemindingService.this, id, intent, PendingIntent.FLAG_NO_CREATE|PendingIntent.FLAG_ONE_SHOT);
if(pendingIntent != null) {
alarmMgr.cancel(pendingIntent);
   pendingIntent.cancel();  
}

这将进行测试并且运行良好。