Android学习--广播机制

原创 2012年03月31日 11:13:30

1.Android广播机制的介绍

特点:发送方并不关心接收方是否收到数据,以及受到数据之后的操作。


2.BroadcastReceiver的作用

广播接收者(BroadcastReceiver)用于接收广播Intent,广播Intent的发送是通过调 Context.sendBroadcast()Context.sendOrderedBroadcast()来实现的。通常一个广播 Intent可以被订阅了此Intent的多个广播接收者所接收。

广播是一种广泛运用的在应用程序之间传输信息的机制。而 BroadcastReceiver是对 发送出来的广播进行过滤接收并响应的一类组件;

来自普通应用程序,如一个应用程序通知其他应用程序某些数据已经下载完毕。

BroadcastReceiver自身并不实现图形用户界面,但是当它收到某个通知后, BroadcastReceiver可以启动Activity作为响应,或者通过NotificationMananger提醒用户, 或者启动Service等等。


3.BroadcastReceive的生命周期

当发送广播后(intent发送出去后),会到AndroidManifest.xml文件中找是不是有匹 配的action,如果有就会调用TestReceiver,然后获得TestReceiver对象,再执行onReceive 方法,这时候TestReceiver对象就没有用了,当我们再次点击按钮的时候就会重新获得对象,这 就是BroadcastReceiver的生命周期;


4.整个BroadcastReceive的实现过程:

首先,需要自己定义一个继承自BroadcastReceive的类,然后复写它的onReceive方法, 我们主要的代码都在这个方法里面写。然后,需要在AndroidManifest.xml这里面进行注册一 下,用<receive>这个标签进行生命,并用<intent-filter>进行过滤,这里面有一点很重要的是 intent如果符合此处所指定的action属性的话,就会启动这个receive,否则不启动。然后就是 编写Activity这个类,这里面需要需要写一个 监听器,然后通过IntentsetAction以及 ActivitysendBroadcast进行发送广播。


5.注册BroadcastReceiver的方法:

BroadcastReceiver用于监听被广播的事件(intent)为了达到这个目的, BroadcastReceiver必须进行注册,注册的方法有以下两种。

1)在应用程序代码中进行注册

registerReceiver(receiver,filter)

unregisterReceiver(receiver)//解除broadcastReceiver对象的注册

(我们可以在启动Activity时注册,在Activity不可见以后取消注册)

//生成一个IntentFilter对象

Intentfilterfilter = new IntentFilter();

//IntentFilter添加一个Action

filter.addAction("android.provider.Telephony.SMS_RECEIVED");

//注册broadcastReceiver对象

this.registerReceiver(smsReceiver,filter);

smsReceiver为接收广播的BroadcastReceiver对象


如果一个BroadcastReceive用于更新UI,那么通常会使用这种方法进行注册 BroadcastReceive;在Activity启动的时候注册BroadcastReceive,而Activity不可见以后就 取消 注册。

2)在AndroidManifest.xml中进行注册

<receiverandroid:name=".接收器类名">

<intent-filter>

<actionandroid:name="android.intent.action.EDIT">

</intent-filter>

</receiver>

intent-filter过滤器挑选广播中的Action是否匹配,若匹配则生成该Receiver对象

上述注册特点是:应用程序结束了之后,该BroadcastReceiver同样会接受到广播,一直 处于活动状态,有的应用程序需要这一点,有的则不需要,不需要时应该使用另一种注册方法。 5.Android内置的BroadcastActions

action中可以有很多类型如 ACTION_VIEW

ACTION_EDIT

ACTION_MAIN

ACTION_CAMARA_BUTTON(照相机按钮按下)

ACTION_DIAL(拨号)

ACTION_BATTERY_LOW(低电量)

等等可以在帮助文档android:content中找到。


Android源码解析之广播(Broadcast)机制简要介绍和学习计划

转载自:http://blog.csdn.net/luoshengyang/article/details/6730748        在Android系统中,广播(Broadcast)是在组...

老罗:Android系统中的广播(Broadcast)机制简要介绍和学习计划

博客源址:Android系统中的广播(Broadcast)机制简要介绍和学习计划 博客时间:2011-08-31 01:12        在Android系统中,广播(Broadcast)是...

Android系统中的广播(Broadcast)机制简要介绍和学习计划

在Android系统中,广播(Broadcast)是在组件之间传播数据(Intent)的一种机制;这些组件甚至是可以位于不同的进程中,这样它就像Binder机制一样,起到进程间通信的作用;本文通过一个...

Android系统中的广播(Broadcast)机制简要介绍和学习计划 .

在Android系统中,广播(Broadcast)是在组件之间传播数据(Intent)的一种机制;这些组件甚至是可以位于不同的进程中,这样它就像Binder机制一样,起到进程间通信的作用;本文通过一个...

android广播机制初步学习——短信黑名单

andriod广播机制中主要使用到的两个类:Broadcast和BroadcastReceiver。即一个发送一个接受。 发送的时候是用Intent来携带数据(广播)的,利用Intent中的标识来匹...

Mars Android视频学习笔记——01_21/22_广播机制

     Android中的广播,可以理解成系统发出的消息,我们通过接收这些广播可以进行相应的处理。    为了要接收系统的广播,需要继承BroadcastReceiver,生成自己的类,并覆写其on...

Android学习笔记——广播机制

网络通信中,在一个IP网络范围内,最大的IP地址是被保留作为广播地址来使用的。如某网络IP范围是192.168.0.XXX,子网掩码是255.255.255.0,那这个网络的广播地址就是192.168...

Android广播机制学习

Android广播机制 Android广播机制 广播机制最大的特点就是发送方并不关心接收方是否接到数据,也不关心接收方是如何处理数据的。 Android广播类型分类 1)无序广播:任何一个广播...

Android学习笔记之广播机制(1)

广播接收者(BroadcastReceiver)用于异步接收广播Intent,广播Intent的发送是通过调用Context.sendBroadcast()、Context.sendOrderedBr...
  • SJF0115
  • SJF0115
  • 2012年01月31日 18:00
  • 1071
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android学习--广播机制
举报原因:
原因补充:

(最多只允许输入30个字)