标签:
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注册 (常驻型: 一旦注册永久存在)
动态注册: 在程序中通过代码进行注册 (实时型: 只有当代码生效时存在, 如果代码过了就不存在了)
标签:
原文地址:http://www.cnblogs.com/skjr/p/5815287.html