Android LocalBroadcastManager登録ブロードキャストと直接registerReceiverの違い
1094 ワード
なぜラジオを使うの?ブロードキャストを使用すると、結合を解除できます.例えば、ユーザーのログインに成功した後、私たちはいくつかのページの更新内容を通知することができます.図の面のために、静的な方法の形式を呼び出すことによって、あるいは自分で観察者モードを作ることができます.静的メソッドは結合度が高く,初期化順序の問題によりバグが発生する場合がある.-新しいページがログインに成功した後に応答する必要がある場合は、新しいページにブロードキャストを登録するだけで、ブロードキャストを送信する内容を変更する必要はありません.コードの再利用性がよい.もちろん私が思わなかったことはたくさんあります.
コード登録ブロードキャストには2つの方法がありますは、 を登録する.
違いは、第1の方法で登録されたブロードキャストは、
コード登録ブロードキャストには2つの方法があります
LocalBroadcastManager.getInstance(MainPagerActivity.this).registerReceiver(mReceiver, filter);
を使用してローカルブロードキャストを登録する.registerReceiver(mReceiver, filter);
を用いるブロードキャスト違いは、第1の方法で登録されたブロードキャストは、
LocalBroadcastManager.getInstance(LoginActivity.this).sendBroadcast(bIntent);
によって送信されたブロードキャストのみを受信することができる.システムブロードキャストまたは他のappのブロードキャストは受信されません.第2の態様で登録されたブロードキャストは、LocalBroadcastManager.getInstance(LoginActivity.this).sendBroadcast(bIntent);
によって送信されたブロードキャストを受信できない.しかし、システム放送とsendBroadcast();
から送信された放送を受信することができる.sendBroadcast();
で送信されたブロードキャストについては、LocalBroadcastManager
を使用して登録して受信できるかどうかは、テストしていません.このような問題に遭遇したり、このような例を作ったことがある場合は、コメントエリアで話してください.