首页 > 代码库 > Broadcast Intent 和Broadcast Receiver的使用

Broadcast Intent 和Broadcast Receiver的使用

package tw.android;import android.app.Activity;import android.content.*;import android.os.Bundle;import android.view.View;import android.widget.Button;public class Main extends Activity {    private Button mBtnRegReceiver,                   mBtnUnregReceiver,                   mBtnSendBroadcase1,                   mBtnSendBroadcase2;    private MyBroadcaseReceiver2 mMyReceiver2;    /** Called when the activity is first created. */    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        setupViewComponent();    }    private void setupViewComponent() {        mBtnRegReceiver = (Button)findViewById(R.id.btnRegReceiver);        mBtnUnregReceiver = (Button)findViewById(R.id.btnUnregReceiver);        mBtnSendBroadcase1 = (Button)findViewById(R.id.btnSendBroadcase1);        mBtnSendBroadcase2 = (Button)findViewById(R.id.btnSendBroadcase2);                           mBtnRegReceiver.setOnClickListener(btnRegReceiverOnClickLis);        mBtnUnregReceiver.setOnClickListener(btnUnregReceiverOnClickLis);        mBtnSendBroadcase1.setOnClickListener(btnSendBroadcase1OnClickLis);        mBtnSendBroadcase2.setOnClickListener(btnSendBroadcase2OnClickLis);    }    private Button.OnClickListener btnRegReceiverOnClickLis = new Button.OnClickListener() {        public void onClick(View v) {            IntentFilter itFilter = new IntentFilter("tw.android.MY_BROADCAST2");            mMyReceiver2 = new MyBroadcaseReceiver2();            registerReceiver(mMyReceiver2, itFilter);        }    };    private Button.OnClickListener btnUnregReceiverOnClickLis = new Button.OnClickListener() {        public void onClick(View v) {            unregisterReceiver(mMyReceiver2);             }    };    private Button.OnClickListener btnSendBroadcase1OnClickLis = new Button.OnClickListener() {        public void onClick(View v) {            Intent it = new Intent("tw.android.MY_BROADCAST1");            it.putExtra("sender_name", "主程序");            sendBroadcast(it);        }    };    private Button.OnClickListener btnSendBroadcase2OnClickLis = new Button.OnClickListener() {        public void onClick(View v) {            Intent it = new Intent("tw.android.MY_BROADCAST2");            it.putExtra("sender_name", "主程序");            sendBroadcast(it);        }    };}
package tw.android;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.widget.Toast;public class MyBroadcaseReceiver1 extends BroadcastReceiver {    @Override    public void onReceive(Context context, Intent intent) {        // TODO Auto-generated method stub        String sender = intent.getStringExtra("sender_name");        Toast.makeText(context, "BroadcastReceiver1Μ收到" + sender + "发送的Broadcase信息",                 Toast.LENGTH_LONG).show();    }}
package tw.android;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.widget.Toast;public class MyBroadcaseReceiver2 extends BroadcastReceiver {    @Override    public void onReceive(Context context, Intent intent) {        // TODO Auto-generated method stub        String sender = intent.getStringExtra("sender_name");        Toast.makeText(context, "BroadcastReceiver2Μ收到" + sender + "发送Broadcase的信息",                 Toast.LENGTH_LONG).show();    }}
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="horizontal"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    ><LinearLayout    android:orientation="vertical"    android:layout_width="0dp"    android:layout_height="fill_parent"    android:layout_weight="1"    /><LinearLayout    android:orientation="vertical"    android:layout_width="0dp"    android:layout_height="fill_parent"    android:layout_weight="1"    ><Button android:id="@+id/btnRegReceiver"       android:layout_width="fill_parent"     android:layout_height="wrap_content"     android:text="注册Broadcase Receiver2"    android:layout_marginTop="20dp"    /><Button android:id="@+id/btnUnregReceiver"    android:layout_width="fill_parent"     android:layout_height="wrap_content"     android:text="注销Broadcase Receiver2"    /><Button android:id="@+id/btnSendBroadcase1"    android:layout_width="fill_parent"     android:layout_height="wrap_content"     android:text="传送MY_BROADCAST1"    /><Button android:id="@+id/btnSendBroadcase2"    android:layout_width="fill_parent"     android:layout_height="wrap_content"     android:text="传送MY_BROADCAST2"    /></LinearLayout><LinearLayout    android:orientation="vertical"    android:layout_width="0dp"    android:layout_height="fill_parent"    android:layout_weight="1"    /></LinearLayout>
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"      package="tw.android"      android:versionCode="1"      android:versionName="1.0">    <uses-sdk android:targetSdkVersion="11" />    <application android:icon="@drawable/icon" android:label="@string/app_name">        <activity android:name=".Main"                  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=".MyBroadcaseReceiver1"                  android:label="@string/app_name">            <intent-filter>                <action android:name="tw.android.MY_BROADCAST1" />            </intent-filter>        </receiver>    </application></manifest>

 

Broadcast Intent 和Broadcast Receiver的使用