039 Java Android Program to Demonstrate Broadcast Receiver
Posted by Superadmin on February 26 2017 08:10:53

ava Android Program to Demonstrate Broadcast Receiver

This Android Java Program demonstrates a BroadCast Receiver in Android.

 

Here is source code of the Program demonstrate a BroadCast Receiver in Android. The program is successfully compiled and run on a Windows system using Eclipse Ide. The program output is also shown below.

Broadcast Receivers (commonly referred to simply as Receivers) are used to listen for Broadcast Intents. For a Receiver to receive broadcasts, it must be registered, either in code or within the application manifest.

To create a new Broadcast Receiver, extend the BroadcastReceiver class and override the onReceive event handler:

 
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
public class MyBroadcastReceiver extends BroadcastReceiver {
   @Override
     public void onReceive(Context context, Intent intent) {
          //TODO: React to the Intent received.
      }
 }

Note
The onReceive method will be executed on the main application thread when a Broadcast Intent is received that matches the Intent Filter used to register the Receiver. The onReceive handler must complete within five seconds; otherwise, the Force Close dialog will be displayed and we don’t want that to happen so just keep the code in onReceive method simple.

In the following source code given below is used to regiter for screen on , when the screen is switched on the receiver gets notified and executes its onReceive() method to create a toast.

Main Activity

 
package com.example.broadcastreceiver;
 
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
 
public class MainActivity extends Activity {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button b1 = (Button) findViewById(R.id.button1);
        b1.setOnClickListener(new View.OnClickListener() {
 
            @Override
            public void onClick(View v) {
                // TODO : do something here 
 
            }
        });
 
    }
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
 
}

Myreceiver.java

 
package com.example.broadcastreceiver;
 
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.widget.Toast;
 
public class Myreceiver extends BroadcastReceiver{
 
    @Override
    public void onReceive(Context context, Intent intent) {
        // TODO Auto-generated method stub
         Toast.makeText(context, "Intent Detected.", Toast.LENGTH_LONG).show();
    }
 
}

Activity_Main.xml

 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >
 
    <Button
        android:id="@+id/button1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_marginTop="188dp"
        android:text="Click" />
 
</RelativeLayout>

Remember to register in Android Manifest and to specify to which action will it respond to , in this example the receiver responds to the Onscreen action.

AndroidManifest

 
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.broadcastreceiver"
    android:versionCode="1"
    android:versionName="1.0" >
 
    <uses-sdk
        android:minSdkVersion="11"
        android:targetSdkVersion="17" />
 
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.broadcastreceiver.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
 
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
 
        <receiver android:name="MyReceiver" >
            <intent-filter>
                <action android:name="android.intent.action.SCREEN_ON" >
                </action>
            </intent-filter>
        </receiver>
    </application>
 
</manifest>