广播的概念与定义广播接收者
2016-04-07 22:14
218 查看
<pre name="code" class="html">BroadCastRecevier 有两种注册方式 清单文件里注册: 一旦应用程序被部署到手机, 广播接受者就会生效 代码里面注册: 一旦代码所在的进程被杀死了, 广播接受者就失效了. 广播接受者分为两种类型: 有序的广播. 短信到来的广播 电话拨打的广播 -1000~1000 设置广播的优先级 android:priority=“1000” 从高优先级->低优先级 依次传递 abortbroadcast() 方法 可以终止广播事件 无序广播. 没有优先级 任何人 注册广播接受者的人,都可以接收到广播. 没有abortboradcast()方法 sendBroadcast(intent); // 发送一条广播 sendOrderedBroadcast(intent, receiverPermission); // 发送一条有序广播 sendOrderedBroadcast(intent, receiverPermission, resultReceiver, scheduler, initialCode, initialData, initialExtras) 如果发送广播的时候 使用的 上面的api发送出去的广播 第三个参数 resultReceiver 指定了广播的接受者. 即便是中间我把广播给终止 abortbroadcast() resultReceiver 还是会接受到广播时间 setResultData(null);
广播接收者;广播就是个收音机,用来接收和发送广播广播的意义;android中系统会发生一些事件的改变,比如,电量变低,收发短信,拨打电话,屏幕解锁系统会发送广播,只要应用程序接收到这条广播,就知道系统发生了什么事件,从而执行相应的代码,使用广播接受者,就可以接收广播
使用; 1.创建一个广播接受者的类去继承BroadcastReceiver public class CallReceiver extends BroadcastReceiver { /** * 接收到广播就会被调用 清单文件配置 */ @Override public void onReceive(Context arg0, Intent arg1) { } } 2.在配置清单文件中在Receiver加上name <receiver android:name="com.ip.CallReceiver" > 3.同时添加过滤器,指定action的子节点,action的值必须跟要接受的广播匹配,比如如果要接收到电话广播,action的值应为; 接收电话的<action android:name="android.intent.action.NEW_OUTGOING_CALL"/>
接收短信的<android.provider.Telephony.SMS_RECEIVED/> // 短信在安卓中成为数据单元pdus <span style="white-space:pre"> </span>// 拿到短信数据 <span style="white-space:pre"> </span>bundle = arg1.getExtras(); <span style="white-space:pre"> </span>Object[] object = (Object[]) bundle.get("pdus"); 只有action与我们定义的广播相同是,我们才能过接收到广播 当然了广播接收者还有优先级只分从-1000--1000之间(但是也不确定)
<intent-filter android:priority="2*32" >
4.如果广播接收者所在的进程已经关闭,当系统发出的广播中的action跟该广播接收者的action相匹配是,系统会启动该广播的接收者所在的进程,并把广播发送给广播接收者
自定义广播; 1.在一个A的应用中的BroadcaseReceiver中通过 Intent intent =new Intent(); intent.setAction("自定义的广播"); BroadcaseReceiver(intent); 2.在B应用中的配置文件的清单中的action节点上定义 action=“自定义的广播”;即可
相关文章推荐
- 历史上两个人合作成功的案例
- codeforces 20 C Dijkstra? spfa
- Centos 安装配置gerrit
- HDU - 5479 Scaena Felix (栈模拟)水
- 链表的反转
- Android开发:最详细的 Toolbar 开发实践总结
- 11. Container With Most Water
- java mysql 连接
- 分页特效
- SVN权限配置
- POJ 2528 线段树的离散化 和坐标位置的判定
- 关于C语言的问卷调查
- 设计模式之策略模式
- CCProgressTimer
- poj-1840-Eqs
- 某公司面试题
- c++中union的使用,看高手们如何解释的
- Python学习笔记-argparse
- 【转】Android贪吃蛇源代码
- Windows 下配置Git