Проблема с AlarmManager в Android - PullRequest
3 голосов
/ 22 июля 2011

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

Intent intent = new Intent(this, Kill_Task.class);  
PendingIntent pendingIntent = PendingIntent.getBroadcast(
                   this, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT);  

AlarmManager objAlarmManager = 
     (AlarmManager) getSystemService(Context.ALARM_SERVICE);  
objAlarmManager.setRepeating(
     AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), 1000, pendingIntent);

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

Почему это так?

1 Ответ

1 голос
/ 19 августа 2011

1) ваш сигнал тревоги повторяется каждую секунду вашего объекта ожидаемого намерения. AlarmManager.setRepeating(...
2) до отмена / остановка Ваш будильник вы должны вызвать objAlarmManager.cancel(pendingIntent);. с pendingIntent, что соответствует вашему ожидаемому намерению, которое вы определили (то же самое класс , то же самое действие ... за исключением дополнительное данные, которые не учитываются для сравнения ... см. IntenFilter , чтобы узнать больше о том, как намерение может соответствовать другому
3) затем отменить само ожидающее намерение, например pendingIntent.cancel();, чтобы убедиться, что ожидающее намерение непригодно для использования.

...