У меня есть действие, ему нужно к ответу на многоадресное событие. Так как действие не может быть бытовым радиоприемником одновременно, я сделал бытовой радиоприемник.
Мой вопрос: как я могу уведомить действие от бытового радиоприемника? Я полагаю, что это - общая ситуация, так есть ли шаблон разработки для этого?
Трансляция - это уведомление. :) Если вы хотите сказать, начать действие или услугу и т. Д. На основе полученного широковещательного сообщения, вам понадобится автономный широковещательный приемник, и вы поместите его в свой файл манифеста. Однако, если вы хотите, чтобы ваше действие само отвечало на широковещательные рассылки, вы создаете экземпляр широковещательного приемника в своей деятельности и регистрируете его там.
Я использую следующий шаблон:
public class MyActivity extends Activity {
private BroadcastReceiver receiver = new BroadcastReceiver() {
@Override
public void onReceive(...) {
...
}
});
public void onResume() {
super.onResume();
IntentFilter filter = new IntentFilter();
filter.addAction(BROADCAST_ACTION);
this.registerReceiver(this.receiver, filter);
}
public void onPause() {
super.onPause();
this.unregisterReceiver(this.receiver);
}
}
Таким образом, получатель создается при создании класса (можно также сделать в onCreate). Затем в onResume / onPause я обрабатываю регистрацию и отмену регистрации получателя. Затем в методе приемника onReceive
я делаю все необходимое, чтобы действие реагировало так, как я хочу, когда оно получает широковещательную передачу.