An Android BroadcastReceiver is another component in Android process, along with activities, content provider, and Services.
It is a component that can respond to a broadcast message sent by a client.
The message itself is an Android broadcast intent. A broadcast intent (message) can invoke more than one receiver.
A component such as an activity or a service uses the sendBroadcast() method available on the Context class to send a broadcast event.
Receiving components of the broadcast intent will need to inherit from a receiver class.
These receiving components need to be registered in the manifest file through a receiver tag to indicate that the class is interested in responding to a certain type of broadcast intent.
Create Android BroadcastReceiver class
public class MyReceiver extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
}
}Register Android BroadcastReceiver
A receiver can be registered via the AndroidManifest.xml file.
Alternatively to this static registration, you can also register a receiver dynamically via the Context.registerReceiver() method.
The implementing class for a receiver extends the BroadcastReceiver class.
If the event for which the broadcast receiver has registered happens, the onReceive() method of the receiver is called by the Android system.
<application
………
………
<receiver android:name="MyReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED">
</action>
</intent-filter>
</receiver>
</application>Registering and Unregistering Android Broadcast Receiver in Code:
private IntentFilter filter = new IntentFilter(MyReceiver.ACTION);
private MyReceiver receiver = new MyReceiver();
@Override
public void onResume()
{
super.onResume();
//Register the broadcast receiver.
registerReceiver(receiver, filter);
}
@Override
public void onPause()
{
//Unregister the receiver
unregisterReceiver(receiver);
super.onPause();
}System generated Events
Some system generated events are as follows:
android.intent.action.BATTERY_CHANGED
It describes Sticky broadcast containing the charging state, level, and other information about the battery.
android.intent.action.BATTERY_LOW
It Indicates low battery condition on the device.
android.intent.action.BOOT_COMPLETED
This is broadcast one time after the system has finished booting.
android.intent.action.CALL
It performs a call to someone specified by the data.
android.intent.action.REBOOT
It describes the device is reboot.
