Broadcast Receivers simply respond to broadcast messages from other applications or from the system itself. These messages are sometime called events or intents. For example, applications can also initiate broadcasts to let other applications know that some data has been downloaded to the device and is available for them to use, so this is broadcast receiver who will intercept this communication and will initiate appropriate action. There are following two important steps to make BroadcastReceiver works for the system broadcasted intents −
Creating the Broadcast Receiver.
Registering Broadcast Receiver
There is one additional steps in case you are going to implement your custom intents then you will have to create and broadcast those intents.
A broadcast receiver is implemented as a subclass of BroadcastReceiver class and overriding the onReceive() method where each message is received as a Intent object parameter.
public class MyReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context, "Intent Detected.", Toast.LENGTH_LONG).show();
}
}
Registering Broadcast Receiver
An application listens for specific broadcast intents by registering a broadcast receiver in AndroidManifest.xml file. Consider we are going to register MyReceiver for system generated event ACTION_BOOT_COMPLETED which is fired by the system once the Android system has completed the boot process.
Now whenever your Android device gets booted, it will be intercepted by BroadcastReceiver MyReceiver and implemented logic inside onReceive() will be executed.
There are several system generated events defined as final static fields in the Intent class. The following table lists a few important system events.
If you want your application itself should generate and send custom intents then you will have to create and send those intents by using the sendBroadcast() method inside your activity class. If you use the sendStickyBroadcast(Intent) method, the Intent is sticky, meaning the Intent you are sending stays around after the broadcast is complete.
public void broadcastIntent(View view) {
Intent intent = new Intent();
intent.setAction("com.tutorialspoint.CUSTOM_INTENT");
sendBroadcast(intent);
}
This intent com.tutorialspoint.CUSTOM_INTENT can also be registered in similar way as we have regsitered system generated intent.
This example will explain you how to create BroadcastReceiver to intercept custom intent. Once you are familiar with custom intent, then you can program your application to intercept system generated intents. So let's follow the following steps to modify the Android application we created in Hello World Example chapter −
StepDescription1You will use Android studio to create an Android application and name it as My Application under a package com.example.tutorialspoint7.myapplication as explained in the Hello World Example chapter.2Modify main activity file MainActivity.java to add broadcastIntent() method.3Create a new java file called MyReceiver.java under the package com.example.tutorialspoint7.myapplication to define a BroadcastReceiver.4An application can handle one or more custom and system intents without any restrictions. Every intent you want to intercept must be registered in your AndroidManifest.xml file using <receiver.../> tag5Modify the default content of res/layout/activity_main.xml file to include a button to broadcast intent.6No need to modify the string file, Android studio take care of string.xml file.7Run the application to launch Android emulator and verify the result of the changes done in the application.Following is the content of the modified main activity file MainActivity.java. This file can include each of the fundamental life cycle methods. We have added broadcastIntent() method to broadcast a custom intent.
package com.example.tutorialspoint7.myapplication;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
public class MainActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
// broadcast a custom intent.
public void broadcastIntent(View view){
Intent intent = new Intent();
intent.setAction("com.tutorialspoint.CUSTOM_INTENT"); sendBroadcast(intent);
}
}
Following is the content of MyReceiver.java:
package com.example.tutorialspoint7.myapplication;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.widget.Toast;
/**
* Created by TutorialsPoint7 on 8/23/2016.
*/
public class MyReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context, "Intent Detected.", Toast.LENGTH_LONG).show();
}
}
Following will the modified content of AndroidManifest.xml file. Here we have added <receiver.../> tag to include our service:
mageView and ImageButton are used in Android application to place an image in the view. ImageButton is used to use an image as a button in your android application. To get more tutorials visit android course online Blog ImageView in Android ImageView is used to show any picture on the user interface. Following are some of the main attributes that are most commonly used: AttributeDescription android:maxHeight Used to specify a maximum height for this view. android:maxWidth Used to specify a maximum width for this view. android:src Sets a drawable as the content for this ImageView. android:scaleType Controls how the image should be resized or moved to match the size of the ImageView. android:tint Tints the color of the image in the ImageView.Therefore, any image that we want to display in the app should be placed under the drawable folder. This folder can be found under app → res → drawable. To insert an image, simply copy the image and then right click on drawable ...
Android is the open-source operating system which is useful for many tasks. When you start or open your android application. it will undergo various states and that is called as Android Activity Life Cycle. To learn android fundamentals please visit : android training online Introduction to Android Android is an open-source operating system which is based on Linux with a java programmming interface for mobile devices like Smartphones (Touch Screen Devices who supports Android OS). Android It comprises of a multiple API to support location-based services such as GPS. It also has extensive support for multimedia hardware control to perform playback or recording using camera and microphone. It supports multi-tasking, we can move from one task window to another and multiple applications can run simultaneously It will give a chance to reuse the application components and the replacement of...
Merge Adapter is a new feature introduced in recyclerview:1.2.0-alpha02, that allows us to sequentially club multiple adapters. This offers more encapsulation and reusability, rather than combining several data sources into one adapter. In this post, you can learn how to use Merge Adapter and some other useful stuff, such as how to make effective use of the view pool through adapters. Now the Android team has launched the latest recycle rview update. To use Merge Adapter, upgrade the version of the recyclerview library to 1.2.0-alpha02, or add the following line in the build.gradle file under the dependency tag: Addictions Using 'androidx.recyclerview: recyclerview:1.2.0-alpha02' } To support us android, a new concept for merging data adapters has been developed. They have recently launched a new Recyclerview package:1.2.0-alpha02. This kit has a new class called Merge Adapter as the name means that it enables you to combine multiple data adapters into a single re...
Comments
Post a Comment