LocalBroadcastManager 的示例
BroadcastReceiver 基本上是一种通过 OS 中继 Intent 以执行特定操作的机制。一个经典的定义是
“广播接收器是一个 Android 组件,允许你注册系统或应用程序事件。”
LocalBroadcastManager 是一种在应用程序进程中发送或接收广播的方法。这种机制有很多优点
- 由于数据保留在应用程序进程中,因此数据不会泄露。
- LocalBroadcasts 的解析速度更快,因为普通广播的解析在整个操作系统的运行时都会发生。
LocalBroastManager 的一个简单示例是:
SenderActivity
Intent intent = new Intent("anEvent");
intent.putExtra("key", "This is an event");
LocalBroadcastManager.getInstance(this).sendBroadcast(intent);
ReceiverActivity
- 注册接收器
`LocalBroadcastManager.getInstance(this)`.registerReceiver(aLBReceiver, new IntentFilter("anEvent"));
- 调用接收器时执行操作的具体对象
private BroadcastReceiver aLBReceiver = new `BroadcastReceiver()` { @Override public void onReceive(Context context, Intent intent) { // perform action here. } };
- 当视图不再可见时取消注册。
@Override protected void `onPause()` { // Unregister since the activity is about to be closed. `LocalBroadcastManager.getInstance(this)`.unregisterReceiver(aLBReceiver); super.onDestroy(); }