我有一个重复的闹钟设置,我的问题是取消后它没有取消(我正在用Log.v()检查这个
这是我创建警报的方法(在IntentService中)
AlarmManager alarms = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
Intent intentToFire = new Intent(CAlarmReceiver.ACTION_CHECK_ALARM);
PendingIntent alarmIntent = PendingIntent.getBroadcast(this, 0, intentToFire, 0);
private void rescheduleAlarm() {
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.add(Calendar.SECOND, TIME_TO_REFRESH);
alarms.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), CHECK_TIME, alarmIntent);
}
然后在一个活动中,我点击一个按钮就会调用此代码
private OnClickListener btnCloseApplicationListener = new OnClickListener() {
public void onClick(View v) {
intentToCancel = new Intent(CAlarmReceiver.ACTION_CHECK_ALARM);
alarmIntent = PendingIntent.getBroadcast(v.getContext(), 0, intentToCancel, 0);
alarm = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
alarm.cancel(alarmIntent);
finish();
}
};
执行完()之后,我一直看到DDMS窗口中的日志。 我该如何取消它? 提前谢谢!
答案 0 :(得分:1)
尝试使用相同的上下文。 意图必须匹配,我认为你的问题是你在尝试取消警报时使用不同的上下文。
alarmIntent = PendingIntent.getBroadcast(this, 0, intentToCancel, 0);