#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
в манифест, и ваша активность сможет получать широковещательную передачу, а также отправлять широковещательную передачу.
Я не слишком уверен, как это ведет себя с точки зрения жизненного цикла. Вам нужно будет посмотреть, если это то, что вы хотите.