Wednesday, November 27, 2013

[android-developers] Broadcast Receiver

I have created a simple Broadcast Receiver and it working absolutely fine except that if i turned on/off the Air Plane Mode,
it is taking nearly 150 seconds to receive the broadcasted message using onReceive(). Another thing is only this is causing a
problem if we launch the application and then if i change Air plane Mode (on/off), Then it taking too long to receive the message.


*** If there is Mode change before launching the application it didn't affect the time to receive the message in onReceive().

I have attached the sample project with in this topic.

AndroidManifest.xml

<?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="8"
        android:targetSdkVersion="18" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.broadcastreceiver.BroadcastReceiverActivity"
            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="MyBroadcastReceiver" >
            <intent-filter>
                <action android:name="test.intent.action.QR_CODE_RECEIVER" />
            </intent-filter>
        </receiver>
    </application>

</manifest>


MyBroadcastReceiver.java

package com.example.broadcastreceiver;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.widget.Toast;

public class MyBroadcastReceiver extends BroadcastReceiver {
   
      @Override
      public void onReceive(Context context, Intent intent) {
          //TODO
          Toast.makeText(context, "Don't panik but your time is up!!!!.",
                    Toast.LENGTH_LONG).show();
          Bundle extras = intent.getExtras();
          String state = extras.getString("message");
          Log.d("Test", "Inside MyBroadcastReceiver onReceive() state :: "+ state);
          Toast.makeText(context, state,
                    Toast.LENGTH_LONG).show();
      }

}


BroadcastReceiverActivity.java

package com.example.broadcastreceiver;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

public class BroadcastReceiverActivity extends Activity {
    public static String qrCodeReceiver = "test.intent.action.QR_CODE_RECEIVER";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Button broadcastBtn = (Button) findViewById(R.id.broadcastBtn);
        broadcastBtn.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                // TODO
                Intent intent = new Intent();
                intent.putExtra("message", "Ilandrayan Doing THe Testing !!!");
                intent.setAction(qrCodeReceiver);
                sendBroadcast(intent);
                Log.d("Test", "Inside BroadcastReceiverActivity sendBroadcast :: ");
            }
        });
    }
}


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=".BroadcastReceiverActivity" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world" />

    <Button
        android:id="@+id/broadcastBtn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/textView1"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="48dp"
        android:text="Send The BroadCast Message" />

</RelativeLayout>


Thank you in advance.

--
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscribe@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
---
You received this message because you are subscribed to the Google Groups "Android Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to android-developers+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

0 Comments:

Post a Comment

Subscribe to Post Comments [Atom]

<< Home


Real Estate