повторяющаяся тревога не отменяется - PullRequest
0 голосов
/ 06 июля 2011

У меня установлен повторяющийся сигнал тревоги, моя проблема в том, что после отмены он не отменяется (я проверяю это с помощью 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();
    }
};

После выполнения finish () япродолжайте видеть журналы, которые у меня есть в окне DDMS. Как я могу отменить это? Заранее спасибо!

1 Ответ

1 голос
/ 11 июля 2011

попробуйте использовать тот же контекст для намерения.Намерения должны совпадать, и я думаю, что ваша проблема в том, что вы используете другой контекст при попытке отменить тревогу.

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