2016-06-02 12 views
-2

Ich versuche Code für LocalBroadcastManager .Während Registrierung und Registrierung BroadcastReceiver, verwende ich unten Code.Andere Möglichkeit zur Registrierung und nicht registrierte Broadcast-Empfänger

Kann jemand einen Unterschied zwischen beiden Möglichkeiten zur Registrierung und Registrierung LocalBroadcastManager geben?

Erster Weg:

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

} 

Zweiter Weg:

... 
//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

Warum unten abstimmen? Ich verweise [registerReceiver] (https://developer.android.com/reference/android/content/Context.html), aber ich möchte mehr darüber wissen, warum und wo beide verwenden. – pRaNaY

Antwort

3

Ihre erste Snippet ruft unregisterReceiver() auf einem Context. Dadurch wird die Registrierung eines Empfängers aufgehoben, den Sie über registerReceiver() auf demselben Context registriert haben. Diese Methoden sind für System-Broadcasts gedacht.

Ihr zweites Snippet ruft unregisterReceiver() auf einem LocalBroadcastManager. Dadurch wird die Registrierung eines Empfängers aufgehoben, den Sie über registerReceiver() auf demselben LocalBroadcastManager registriert haben. Diese Methoden gelten nur für lokale Übertragungen innerhalb Ihrer eigenen Anwendung.

+0

Danke. Ich habe Unterschiede zwischen beiden – pRaNaY