LocalBroadcastManager 的示例

BroadcastReceiver 基本上是一種通過 OS 中繼 Intent 以執行特定操作的機制。一個經典的定義是

“廣播接收器是一個 Android 元件,允許你註冊系統或應用程式事件。”

LocalBroadcastManager 是一種在應用程式程序中傳送或接收廣播的方法。這種機制有很多優點

  1. 由於資料保留在應用程式程序中,因此資料不會洩露。
  2. LocalBroadcasts 的解析速度更快,因為普通廣播的解析在整個作業系統的執行時都會發生。

LocalBroastManager 的一個簡單示例是:

SenderActivity

  Intent intent = new Intent("anEvent");
  intent.putExtra("key", "This is an event");
  LocalBroadcastManager.getInstance(this).sendBroadcast(intent);

ReceiverActivity

  1. 註冊接收器
`LocalBroadcastManager.getInstance(this)`.registerReceiver(aLBReceiver,
              new IntentFilter("anEvent"));
  1. 呼叫接收器時執行操作的具體物件
private BroadcastReceiver aLBReceiver = new `BroadcastReceiver()` {
    @Override 
    public void onReceive(Context context, Intent intent) {
        // perform action here.
    } 
};
  1. 當檢視不再可見時取消註冊。
@Override 
protected void `onPause()` { 
    // Unregister since the activity is about to be closed. 
    `LocalBroadcastManager.getInstance(this)`.unregisterReceiver(aLBReceiver);
    super.onDestroy(); 
}