注册和未注册广播接收器的不同方式

时间:2016-06-02 12:00:45

标签: android broadcastreceiver android-broadcastreceiver

我正在为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);

}

1 个答案:

答案 0 :(得分:3)

您的第一个代码段在unregisterReceiver()上拨打Context。这会取消注册您在同一registerReceiver()上通过Context注册的接收者。这些方法适用于系统级广播。

您的第二个代码段在unregisterReceiver()上调用LocalBroadcastManager。这会取消注册您在同一registerReceiver()上通过LocalBroadcastManager注册的接收者。这些方法仅适用于本地广播,仅在您自己的应用程序中。