A BroadcastReceiver is basically a mechanism to relay Intents through the OS to perform specific actions. A classic definition being
"A Broadcast receiver is an Android component which allows you to register for system or application events."
LocalBroadcastManager is a way to send or receive broadcasts within an application process. This mechanism has a lot of advantages
A simple example of a LocalBroastManager is:
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(); }