Лучшая практика с приемником широковещания и комбинацией услуг - PullRequest
1 голос
/ 23 августа 2011

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

Редактировать: И я также использую

<intent-filter>
  <action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>

BOOT_COMPLETED фильтр намерений для повторной регистрации моего BroadcastReceiver, если пользователь загружается с устройства.

Ответы [ 2 ]

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

Да, вы находитесь на правильном пути

В BootCompleted вы можете запустить службу в методе onReceive () класса broadcastReceiver. Как при запуске телефона andoid, он будет передавать намерения.Помните, никогда не отменяйте эту трансляцию в полном приложении

0 голосов
/ 21 января 2016

Я знаю, что тема старая, но:

  1. Не забудьте разрешение на полную загрузку android.permission.RECEIVE_BOOT_COMPLETED, если вы используете намерение фильтра BOOT_COMPLETED.

  2. Это зависит от логики вашего приложения, НО, если ваша логика требует запуска постоянной фоновой службы, которая выполняет некоторую логику в фоновом режиме (прослушивание данных датчика и т. Д.), Вы можете запустить службу и другие необходимые инициализации в вашем классе приложения. Это обещает вам, что после вызова onReceive BroadcastReceiver (даже после завершения загрузки) все ваши инициализации будут готовы, поскольку ваше Application onCreate уже было вызвано.

...