Остановить повторение Android AlarmManager - PullRequest
15 голосов
/ 17 июня 2011

Я создал будильник, как показано ниже

Intent intent = new Intent(this, Areceiver.class);
PendingIntent sender = PendingIntent.getBroadcast(this, 1234567, intent, 0);

AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE);
am.setRepeating(AlarmManager.RTC_WAKEUP, timenow, 3000, sender);

Я создал кнопку, чтобы отключить будильник. В методе onclick я написал следующий код

Intent intentstop = new Intent(this, Areceiver.class);
PendingIntent senderstop = PendingIntent.getBroadcast(this,
            0, intentstop, 0);
AlarmManager alarmManagerstop = (AlarmManager) getSystemService(ALARM_SERVICE);

alarmManagerstop.cancel(senderstop);

Но работа не останавливается. В чем может быть проблема?

1 Ответ

32 голосов
/ 22 июня 2011

Вы дали своему ожидающему намерению код запроса = 1234567, когда вы включили будильник. Но вы используете 0, когда пытаетесь остановить это. Используйте это при попытке остановиться и должно работать

Intent intentstop = new Intent(this, Areceiver.class);
PendingIntent senderstop = PendingIntent.getBroadcast(this,
            1234567, intentstop, 0);
AlarmManager alarmManagerstop = (AlarmManager) getSystemService(ALARM_SERVICE);

alarmManagerstop.cancel(senderstop);
...