2010-01-21 3 views
1

Я хочу установить будильник в своем приложении, которое будет запускаться каждый день. Согласно документу, я должен установить одноразовый сигнал тревоги, а в BroadcastReceiver, который получит сигнал тревоги, сбросить будильник на следующий день. Это правильно?Как обрабатывать тревогу, вызванную каждый день в android

My BroadcastReceiver хорошо управляет wakelock и запускает сервис, который выпускает этот wakelock. Здесь все отлично.

Однако у меня есть проблемы. В моем приложении есть флажок, который проверяется, когда будильник поднят. Для того, чтобы знать, если моя тревога вверх, я использую следующее условие:

Intent intent = new Intent(context, AlarmReceiver.class); 
boolean alarmUp = (
PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_NO_CREATE) != null) 

Но это, кажется, не очень хорошо работает, , что хороший способ узнать, если тревога вверх?

Заранее спасибо

ответ

6

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

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

Что касается проверки наличия тревоги, то PendingIntent с FLAG_NO_CREATE - это именно то, как вы это сделаете.

+0

Благодарим за отзыв, кажется, что у меня все хорошо, но почему иногда мой будильник отключен, когда я установил будильник накануне? О перезагрузке телефона У меня уже есть приемник, который получает ACTION_BOOT_COMPLETED и устанавливает будильник. – tbruyelle

+0

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

+0

ОК, вы, вероятно, правы. Спасибо – tbruyelle

Смежные вопросы