A Broadcast Receiver is a component in Android that listens for changes in the device's state. These changes include things like battery level changes, the screen turning off, or a new SMS message arriving.
Think of a Broadcast Receiver as a kind of messenger. It waits for certain messages (called broadcasts) and then reacts when those messages arrive.
Use cases
Broadcast Receivers are useful for many reasons. Here are a few examples:
Responding to System Events: You can use a Broadcast Receiver to respond to important system events. For example, your app can save data when the device is about to shut down.
Communicating Between Apps: Broadcast Receivers can help different apps communicate with each other. For example, an app can send a broadcast to let other apps know that new data is available.
Optimizing Battery Usage: By using Broadcast Receivers, your app can only perform actions when certain events happen, which can help save battery life.
Creating Broadcast Receiver
Using a Broadcast Receiver in your Android app is quite simple. There are two main steps:
- Define the Broadcast Receiver: You need to create a class that extends
BroadcastReceiver
and override theonReceive
method. This method will define what happens when the broadcast is received.
01: public class MyBroadcastReceiver extends BroadcastReceiver {
02: @Override
03: public void onReceive(Context context, Intent intent) {
04: // This code will run when the broadcast is received
05: Toast.makeText(context, "Broadcast Received!", Toast.LENGTH_SHORT).show();
06: }
07: }
- Register the Broadcast Receiver: You need to register your Broadcast Receiver. You can do this in two ways: in the AndroidManifest.xml file or dynamically in your code.
Register in AndroidManifest.xml
Add the following lines to your AndroidManifest.xml file:
01: <receiver android:name=".MyBroadcastReceiver">
02: <intent-filter>
03: <action android:name="android.intent.action.BOOT_COMPLETED" />
04: </intent-filter>
05: </receiver>
Register Dynamically in Code
You can also register the receiver in your activity or service:
01: MyBroadcastReceiver receiver = new MyBroadcastReceiver();
02: IntentFilter filter = new IntentFilter(Intent.ACTION_BOOT_COMPLETED);
03: registerReceiver(receiver, filter);
Here is another article you might like 😊 What Are Services In Android Development?