Начать деятельность с помощью AlarmManager, без Broadcastreceiver - PullRequest
3 голосов
/ 10 июля 2011

Я надеюсь, что у меня есть ответ для меня:

Интересно, можно ли (и часто) использовать AlarmManager для непосредственного запуска действия. Документация не объясняет это явно. Он описывает только использование Broadcastreceivers.

Если можно сразу начать свою деятельность, где я получу намерение (onNewIntent)?

Большое спасибо Jean-Pierre

1 Ответ

3 голосов
/ 10 июля 2011

Интересно, можно ли (и часто) использовать AlarmManager для непосредственного запуска действия.

Да.

Документация не объясняет это явно. Он описывает только использование Broadcastreceivers.

Использование BroadcastReceiver является наиболее распространенным сценарием. Это необходимо для _WAKEUP сигналов тревоги, если вы хотите, чтобы устройство надежно просыпалось при срабатывании сигнала тревоги.

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

Если можно сразу начать свою деятельность, где я получу намерение (onNewIntent)?

По умолчанию будет создан новый экземпляр действия. Если вы используете FLAG_ACTIVITY_CLEAR_TOP и FLAG_ACTIVITY_SINGLE_TOP, он перенесет существующий экземпляр действия, и вы получите Intent в onNewIntent().

Этот пример проекта демонстрирует использование AlarmManager таким образом. Этот пример проекта демонстрирует настраиваемый пользователем Activity -или- Notification при срабатывании тревоги. Оба они относительно глубоко описаны в серии учебных пособий, поэтому приложения немного сложны.

...