我正在处理日历活动。
将事件添加到日历时,我正在使用警报管理器
创建警报这很好。
我需要在删除活动时取消该特定事件的提醒。
我正在设置这样的警报。
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);
如何在删除活动时取消提醒。
请帮我解决这个问题
先谢谢
答案 0 :(得分:0)
答案 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();
}
这将进行测试并且运行良好。