一、Android广播机制介绍


Android20_广播机制(一)_第1张图片
Android:操作系统

BroadcastReceicer:广播接收器,需要注册到Android系统上 事件:如接到短信、电话
二、BroadcastReceiver的作用 每一个BroadcastReceiver都是用来处理不同的事件对象的,Android操作系统产生一个事件的时候,Android就会通知所有BroadcastReceiver产生一个事件,每个BroadcastReceiver就会判断是否是事件是否是自己要处理的事件,如果是当前BroadcastReceiver的事件,才会接收。指明每一个BroadcastReceiver是处理哪个事件,注册到Android操作系统上去主要是在AndroidManifest.xml中设置(是在application标签内)。
<receiver android:name=".TestBroadcastReceiver"><intent-filter><action android:name="android.intent.action.EDIT"/></intent-filter></receiver>
Receiver标签的android:name属性表示将哪一个BroadcastReceiver注册到操作系统上面,filter标签上表示当前BroadcastReceiver是处理哪一类的事件动作的。 Action指的是当前操作是什么类型,即处理数据的方法。data表示将要操作的数据。要想把广播发送出去必须调用sendBroadcast方法。
三、BroadcastReceiver的编写 一个小例子,在BroadcastReceiverActivity中有个按钮,点击发送一个广播,同时在TestBroadcastReceiver中接收。
Android20_广播机制(一)_第2张图片

BroadcastReceiverActivity.java ——发送广播
package com.android.activity;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;public class BroadcastReceiverActivity extends Activity {private Button broadcast = null;    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        broadcast = (Button)findViewById(R.id.broadcast);        broadcast.setText("测试广播机制");        broadcast.setOnClickListener(new BroadcastListener());    }    class BroadcastListener implements OnClickListener{public void onClick(View v) {Intent intent = new Intent();intent.setAction(Intent.ACTION_EDIT);BroadcastReceiverActivity.this.sendBroadcast(intent);}    }}
TestBroadcastReceiver.java ——接收广播
package com.android.activity;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;public class TestBroadcastReceiver extends BroadcastReceiver {public TestBroadcastReceiver() {System.out.println("TestBroadcastReceiver");}@Overridepublic void onReceive(Context context, Intent intent) {System.out.println("TestBroadcastReceiver --> onReceive");}}
AndroidManifest.xml ——注册接收广播类型
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"      package="com.android.activity"      android:versionCode="1"      android:versionName="1.0">    <uses-sdk android:minSdkVersion="10" /><application android:icon="@drawable/icon" android:label="@string/app_name">        <activity android:name=".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=".TestBroadcastReceiver"><intent-filter><action android:name="android.intent.action.EDIT"/></intent-filter></receiver>    </application></manifest>
输出结果:
Android20_广播机制(一)_第3张图片
四、 BroadcastReceiver 的生命周期

TestBroadcastReceiver对象一旦生成就会调用该对象的onReceive方法,当方法返回时该对象就变成垃圾对象了,当再次发送广播时会重新声明TestBroadcastReceiver对象。



更多相关文章

  1. Android: Android Touch事件处理
  2. android 事件处理机制
  3. Android面面观——Android事件处理下(按键、触摸屏和滚动球的一些
  4. FregServer进程,获取ServiceManager代理对象
  5. 2011.07.19——— android intent 传递list或者对象
  6. Android应用程序键盘(Keyboard)消息处理机制分析(26)
  7. 在Android中,如何通过onTouchEvent实现Double Click,判断为双击事

随机推荐

  1. Android(安卓)Log日志规则打印
  2. android 入门学习笔记 取得文件架构、打
  3. 软键盘弹出后ScrollView设置为滚动
  4. 【IMOOC学习笔记】多种多样的App主界面Ta
  5. android BroadcastReceiver 注册方式
  6. HTC XV6850 Android系统移植资源索引
  7. Oprofile分析(android oprofile性能分析)
  8. Windows下搭建Eclipse+Android4.0开发环
  9. [Android]嵌套Fragment以及startActivity
  10. 下载android源码