LocalBroadcastManager
public
final
class
LocalBroadcastManager
extends Object
java.lang.Object | |
↳ | androidx.localbroadcastmanager.content.LocalBroadcastManager |
This class is deprecated.
LocalBroadcastManager is an application-wide event bus and embraces layer violations
in your app: any component may listen events from any other. You can replace usage of
LocalBroadcastManager
with other implementation of observable pattern, depending on your
usecase suitable options may be LiveData
or reactive streams.
Helper to register for and send broadcasts of Intents to local objects
within your process. This has a number of advantages over sending
global broadcasts with Context.sendBroadcast(Intent)
:
- You know that the data you are broadcasting won't leave your app, so don't need to worry about leaking private data.
- It is not possible for other applications to send these broadcasts to your app, so you don't need to worry about having security holes they can exploit.
- It is more efficient than sending a global broadcast through the system.
Summary
Public methods | |
---|---|
static
LocalBroadcastManager
|
getInstance(Context context)
|
void
|
registerReceiver(BroadcastReceiver receiver, IntentFilter filter)
Register a receive for any local broadcasts that match the given IntentFilter. |
boolean
|
sendBroadcast(Intent intent)
Broadcast the given intent to all interested BroadcastReceivers. |
void
|
sendBroadcastSync(Intent intent)
Like |
void
|
unregisterReceiver(BroadcastReceiver receiver)
Unregister a previously registered BroadcastReceiver. |
Inherited methods | |
---|---|
Public methods
getInstance
public static LocalBroadcastManager getInstance (Context context)
Parameters | |
---|---|
context |
Context |
Returns | |
---|---|
LocalBroadcastManager |
registerReceiver
public void registerReceiver (BroadcastReceiver receiver, IntentFilter filter)
Register a receive for any local broadcasts that match the given IntentFilter.
Parameters | |
---|---|
receiver |
BroadcastReceiver : The BroadcastReceiver to handle the broadcast. |
filter |
IntentFilter : Selects the Intent broadcasts to be received. |
See also:
sendBroadcast
public boolean sendBroadcast (Intent intent)
Broadcast the given intent to all interested BroadcastReceivers. This call is asynchronous; it returns immediately, and you will continue executing while the receivers are run.
Parameters | |
---|---|
intent |
Intent : The Intent to broadcast; all receivers matching this
Intent will receive the broadcast. |
Returns | |
---|---|
boolean |
Returns true if the intent has been scheduled for delivery to one or more broadcast receivers. (Note tha delivery may not ultimately take place if one of those receivers is unregistered before it is dispatched.) |
sendBroadcastSync
public void sendBroadcastSync (Intent intent)
Like sendBroadcast(Intent)
, but if there are any receivers for
the Intent this function will block and immediately dispatch them before
returning.
Parameters | |
---|---|
intent |
Intent |
unregisterReceiver
public void unregisterReceiver (BroadcastReceiver receiver)
Unregister a previously registered BroadcastReceiver. All filters that have been registered for this BroadcastReceiver will be removed.
Parameters | |
---|---|
receiver |
BroadcastReceiver : The BroadcastReceiver to unregister. |