重复警报不取消

时间:2011-07-06 18:32:31

标签: android alarmmanager alarm android-pendingintent

我有一个重复的闹钟设置,我的问题是取消后它没有取消(我正在用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窗口中的日志。 我该如何取消它? 提前谢谢!

1 个答案:

答案 0 :(得分:1)

尝试使用相同的上下文。 意图必须匹配,我认为你的问题是你在尝试取消警报时使用不同的上下文。

alarmIntent = PendingIntent.getBroadcast(this, 0, intentToCancel, 0);