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

Привет, я разрабатываю приложение, в котором я использую AlarmManager.

Проблема

Когда я устанавливаю ожидающее намерение с помощью диспетчера будильников на конкретную дату и время, он работает нормально, но предположим, что я установил время будильника на дату 30-05-2011 и время 10:00, и предположим, что текущее время - это дата 30-05-2011 и время 09: 50:00 и теперь, после создания ожидающего намерения, я выключил свое устройство, и после 10:01 я включил свое устройство в это время. Я ожидаю уведомления о будильнике в 10:00, но я его не получаю. Любая идея, как я могу получить уведомление После переключения на моем мобильном


person Dharmendra    schedule 30.05.2011    source источник


Ответы (2)


С помощью AlarmManager вы можете разбудить свое устройство, только когда оно спит.

Для этого используйте setRepeating(int type, long triggerAtTime, long interval, PendingIntent operation) или set(...)

с RTC_WAKEUP или ELAPSED_REALTIME_WAKEUP

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

С уважением, Стефан

person Snicolas    schedule 30.05.2011

Если вы читали страницу документа AlarmManager API:

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

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

Подробнее о трансляции см. в этом вопросе: Попытка запустить службу при загрузке на Android

person Aleadam    schedule 30.05.2011
comment
Есть ли способ получить уведомление, которое передается во время выключения устройства при запуске? - person Dharmendra; 30.05.2011
comment
Нет. Способ сделать это, как я сказал выше. Приложение получает уведомление о том, что телефон загрузился, а затем само приложение должно проверить статус. Это легко сделать с помощью SharedPreferences. - person Aleadam; 30.05.2011