我正在为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 :(得分:3)
您的第一个代码段在unregisterReceiver()
上拨打Context
。这会取消注册您在同一registerReceiver()
上通过Context
注册的接收者。这些方法适用于系统级广播。
您的第二个代码段在unregisterReceiver()
上调用LocalBroadcastManager
。这会取消注册您在同一registerReceiver()
上通过LocalBroadcastManager
注册的接收者。这些方法仅适用于本地广播,仅在您自己的应用程序中。