Android - Регистрация вещательного приемника для двух целей? - PullRequest
7 голосов
/ 23 февраля 2010

Мне было интересно, можно ли зарегистрировать приемник вещания для получения двух намерений?

Мой код выглядит следующим образом:

sipRegistrationListener = new BroadcastReceiver(){
    @Override
    public void onReceive(Context context, Intent intent) {
        String action = intent.getAction(); 

        if (SIPEngine.SIP_REGISTERED_INTENT.equals(action)){
            Log.d("SETTINGS ", "Got REGISTERED action");
        }   

        if (SIPEngine.SIP_UNREGISTERED_INTENT.equals(action)){
            Log.d("SETTINGS ", "Got UNREGISTERED action");
        }   
    }
};

context.registerReceiver(sipRegistrationListener, new IntentFilter(SIPEngine.SIP_REGISTERED_INTENT));
context.registerReceiver(sipRegistrationListener, new IntentFilter(SIPEngine.SIP_UNREGISTERED_INTENT));

Я получаю зарегистрированное намерение каждый раз, когда отправляю его, но я никогда не получаю НЕЗАКОННОЕ намерение при отправке.

Должен ли я настроить другой приемник широковещательной рассылки для нежелательного намерения?

1 Ответ

25 голосов
/ 23 февраля 2010

Не создавайте свой IntentFilter inline, затем используйте метод addAction, чтобы добавить действие UNREGISTERED, т.е.

IntentFilter filter = new IntentFilter(SIPEngine.SIP_REGISTERED_INTENT);
filter.addAction(SIPEngine.SIP_UNREGISTERED_INTENT);
context.registerReceiver(sipRegistrationListener, filter);
...