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(); }