码迷,mamicode.com
首页 > 其他好文 > 详细

BroadcastReceiver

时间:2016-08-28 17:58:58      阅读:176      评论:0      收藏:0      [点我收藏+]

标签:

BroadcastReceiver 广播接受者

 Android中, Broadcast是一种数据传递的方式/通信方式.

Brodadcast 是Android 系统组件之一

 

广播的特性

  1. 由一个发送方, 若干接收方组成

  2. 发送方与接收方存在匹配规则

广播的分类

  1. 普通广播

  2. 有序广播: 各个接受者在接收广播时会遵循一定的先后顺序接收广播

调用方式

  Intent intent = new Intent(this, XXX.class);

  intent.setAction("xxx");   // 这里需要在项目清单(Manifast.xml)中的intent-filter注册

  sendBrodacast(intent);

发送广播

  调用由ContextWrapper定义的sendBroadcast(Intent)方法.

  发送广播时使用的Intent对象, 应该封装Action属性, 而广播接受者需要使用IntentFilter匹配该广播.

  发送广播时, 也可以在Intent中封装需要传递的数据, 通常使用Intent的Extra属性

接收广播

  1. 自定义类, 继承自BroadcastReceiver

  2. 在AndroidManifest.xml 中的<application>节点下, 添加<receiver>节点对该广播接受者进行注册,

    并在<receiver>节点下添加<intent-filter>子级节点, 用于匹配广播发送时的Intent对象  

  3. 重写广播接受者类中的onReceive()方法(可以在这个方法中获取广播传过来的数据, 或者一些其他处理, 实现对广播的处理

 

广播的用法一般使用内部类

  如果是内部类, 不能直接在Manifest.xml 中的 intent-file中注册(静态注册), 需要通过代码动态注册

  在程序中调用registerReceiver(BroadcastReceiver, IntentFilter)注册

 

静态注册 & 动态注册区别

  静态注册: 通过AndroidManifest.xml注册   (常驻型: 一旦注册永久存在)

  动态注册: 在程序中通过代码进行注册  (实时型: 只有当代码生效时存在, 如果代码过了就不存在了)

 

BroadcastReceiver

标签:

原文地址:http://www.cnblogs.com/skjr/p/5815287.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!