Context.registerReceiver(), Context.sendBroadcast(Intent) , and Context.unregisterReceiver()
を使用していました
しかし、クラスLocalBroadcastManager
を見たとき、それはContext
のようにregisterReceiver(), sendBroadcast(Intent) ,
andunregisterReceiver()
を持っています。
よくわかりません。いつLocalBroadcastManager
を使用する必要がありますか?それらはContext
で同じですか?
よろしく、
ありがとう...
LocalBroadcastManagerは、その名前が示すように、アプリで使用できるのみブロードキャストメソッドの実装です。これにはいくつかの利点がありますが、最大のものは安全性であり、注意すべき穴が1つ少なくなります。実装に関して、覚えておくべきことがいくつかあります。
LocalBroadcastManager.getInstance([CONTEXT])
を付ける必要があります。ここで[CONTEXT]
は、ActivityなどのContextクラスのサブクラスです。したがって、このクラスはContextと同じではなく、Contextのレシーバー/ブロードキャストメソッドの非常に具体的なアプリのみの実装です。リスナーがグローバル(システム全体)のブロードキャストを聞く意味がまったくない場合、およびブロードキャストがアプリの外部のものをターゲットにする必要がない場合に使用する必要があります。