Использование BroadcastReceiver

#android #broadcastreceiver

#Android #broadcastreceiver

Вопрос:

Я хочу знать, может ли приложение быть BroadcastReceiver и отправителем? Пожалуйста, поясните на примере.

Ответ №1:

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

Например в действии:

 Intent intent = new Intent(...);
sendBroadcast(intent);
  

В приемнике:

  @Override
 public void onReceive(Context context, Intent intent) {
  // here is your intent
 }
  

Комментарии:

1. Поскольку вы можете получить доступ к контексту, вы также можете отправлять трансляцию из BroadcastReceiver. developer.android.com/reference/android/content /…

2. Как будет проявляться такое приложение, которое также является отправителем и получателем. Я знаю только о <receiver> . Нужно ли нам также добавлять что-то для отправки?

3. Нет, вам не нужно. Единственное, что необходимо, — это <receiver> спецификация.

4. Поскольку мне приходится иметь дело с пользовательским вещателем , так что же мне следует добавить android:name ?

Ответ №2:

Да, это возможно. Пример можно найти здесь.

Ответ №3:

Если под приложением вы подразумеваете активность, то да, вы можете, но вам придется встроить его BroadcastReceiver в свою активность и зарегистрировать / отменить регистрацию самостоятельно. Таким образом, вам просто нужно добавить свою активность как Activity в манифест, и ваша активность сможет получать широковещательную передачу, а также отправлять широковещательную передачу.

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