как я могу уведомить рабочее действие от бытового радиоприемника?

У меня есть действие, ему нужно к ответу на многоадресное событие. Так как действие не может быть бытовым радиоприемником одновременно, я сделал бытовой радиоприемник.

Мой вопрос: как я могу уведомить действие от бытового радиоприемника? Я полагаю, что это - общая ситуация, так есть ли шаблон разработки для этого?

22
задан Brais Gabin 13 January 2013 в 13:02
поделиться

1 ответ

Трансляция - это уведомление. :) Если вы хотите сказать, начать действие или услугу и т. Д. На основе полученного широковещательного сообщения, вам понадобится автономный широковещательный приемник, и вы поместите его в свой файл манифеста. Однако, если вы хотите, чтобы ваше действие само отвечало на широковещательные рассылки, вы создаете экземпляр широковещательного приемника в своей деятельности и регистрируете его там.

Я использую следующий шаблон:

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 я делаю все необходимое, чтобы действие реагировало так, как я хочу, когда оно получает широковещательную передачу.

38
ответ дан 29 November 2019 в 04:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: