2016-06-02 3 views
-2

Я пытаюсь код для LocalBroadcastManager. За регистрацию и отмену регистрации BroadcastReceiver, я использую код ниже.Разный способ регистрации и незарегистрированного радиовещательного приемника

Может ли кто-либо дать разницу между способом регистрации и отмены регистрации LocalBroadcastManager?

Первый способ:

... 
//Register receiver 
registerReceiver(mPairingReceiver, IntentFilter filter = new IntentFilter("android.bluetooth.device.action.PAIRING_REQUEST")); 
... 
@Override 
    protected void onStop() { 
     super.onStop(); 
// unregister receiver 
unregisterReceiver(mPairingReceiver); 

} 

Второй способ:

... 
//Register receiver 
LocalBroadcastManager.getInstance(MainActivity.this).registerReceiver(mPairingReceiver, IntentFilter filter = new IntentFilter("android.bluetooth.device.action.PAIRING_REQUEST")); 
... 
@Override 
    protected void onStop() { 
     super.onStop(); 
// unregister receiver 
LocalBroadcastManager.getInstance(MainActivity.this).unregisterReceiver(mPairingReceiver); 

} 
+0

Зачем голосовать? Я имею в виду [registerReceiver] (https://developer.android.com/reference/android/content/Context.html), но я хочу узнать больше о том, почему и где они используются. – pRaNaY

ответ

3

Ваш первый фрагмент кода вызывает unregisterReceiver() на Context. Это отменит регистратор, который вы зарегистрировали через registerReceiver() на том же Context. Эти методы предназначены для системного вещания.

Ваш второй фрагмент звонка unregisterReceiver() на LocalBroadcastManager. Это отменит регистратор, который вы зарегистрировали через registerReceiver() на том же LocalBroadcastManager. Эти методы предназначены для местных трансляций исключительно в рамках вашего собственного приложения.

+0

Спасибо. Я получил разницу между обоими – pRaNaY