首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

Broadcast 范例

2012-08-25 
Broadcast 实例package demo.broadcastimport android.app.Activityimport android.content.Intentimpo

Broadcast 实例

package demo.broadcast;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.widget.Button;/** * 实现一个广播和广播接收器比较简单 * 一、构建Intent对象 * 二、调用sendBroadcast()发出一个系统级别的广播 * 三、事件的接收是通过自定义一个类,通过继承BroadcastReceiver,并实现其onReceive()方法来实现的 * 四、注册你定义的广播接收器,在AndroidManifest.xml中注册或者在代码中注册 * @author Administrator * */public class MainActivity extends Activity {    //首先需要一个Action常量,任意了啦,就是相当于一个唯一的标识符//这里关于Action的理解,可以这样://Action就相当于一种符号。比如几个军队在作战,其中A军队发出一种信号,//其中B军队和A军队是一方(就是B军队可以正确识别这种信号),所以B军队看到//信号后,对信号进行解析,根据信号的指示,执行任务。而另一方的C军队,不知道这种信号//所以,只能置之不理。//这里,信号就相当于Action,起到过滤的作用。军队B就相当于该Action的一个接受者,是一个广播接收者private static final String ACTION_DEMO_BROADCAST = "demo.broadcast.action.ACTION_DEMO_BROADCAST";private Button button;    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);                button = (Button)this.findViewById(R.id.btn_demo);                button.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubIntent intent = new Intent();//关于Action的理解可以看上面intent.setAction(ACTION_DEMO_BROADCAST);intent.putExtra("msg", "我发送了广播,注意查收!");MainActivity.this.sendBroadcast(intent);}});    }}
?
package demo.broadcast;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.widget.Toast;/** * 自定义一个广播接收器 * 在onReceive()方法中处理 * @author Administrator * */public class DemoReceiver extends BroadcastReceiver {@Overridepublic void onReceive(Context context, Intent intent) {//从Intent中接收信息String msg = intent.getStringExtra("msg");Toast.makeText(context, "新消息:"+msg, Toast.LENGTH_LONG).show();}}
?
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"      package="demo.broadcast"      android:versionCode="1"      android:versionName="1.0">    <application android:icon="@drawable/icon" android:label="@string/app_name">        <activity android:name=".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="DemoReceiver"><intent-filter><action android:name="demo.broadcast.action.ACTION_DEMO_BROADCAST" /><category android:name = "android.intent.category.LAUNCHER" /></intent-filter></receiver>    </application>    <uses-sdk android:minSdkVersion="8" /></manifest> 
?
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="vertical"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    ><TextView      android:layout_width="fill_parent"     android:layout_height="wrap_content"     android:text="@string/hello"    />    <Buttonandroid:id="@+id/btn_demo" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="测试广播事件" /></LinearLayout>
?

热点排行