broadcast广播-Android
来源:互联网 发布:网络教育的学费多少 编辑:程序博客网 时间:2024/06/06 07:23
本文导读:
讲解广播的基本概念和广播的用法
讲解结合了正在开发的智能家居app端代码讲解
Broadcast
广播类似于现实中的广播,只在乎是否将消息发送出去。而关心是否接受的在于接收器的相关内容。
广播有一个特点:在耗时超过10s多的时候是会报错的。因为系统不允许广播中消耗大量的时间。耗时的工作可以交给service处理。相关的内容可以参考另一片service的文章。
第一步:注册
注册分为两种一种是静态注册,一种是代码中注册。
静态注册:即使app被关闭,依然能接收广播,处于活动状态。
注意:
即使应用程序被关闭了,BroadcastReceiver都处于活动状态
<receiver android:name=".Receiver"> <intent-filter> <action android:name="android.intent.action.AIRPLANE_MODE"></action> </intent-filter></receiver>
记得静态注册的receiver不在activity中间,是与activity平行的。
动态注册-代码中注册:想要更新activity内部UI的时候可以使用
应用:BroadcastReceiver用于更新UI,在Activity启动时注册BroadcastReceiver,在Activity不可见以后取消
更新UI方法:在onCreate中注册,在activity不可见的时候取消注册
/*动态注册receiver*/String AUTH_ACTION = "android.provider.Telephony.SMS_RECEIVED";authReceiver = new AuthReceiver();IntentFilter filter = new IntentFilter();filter.addAction(AUTH_ACTION); //指明动作registerReceiver(authReceiver, filter); //注册......unregisterReceiver(authReceiver); //解除receiver的注册
- 我的项目中是想在MainActivity中接收来自于service的信息。所以AuthReceiver要作为MainActivity的内部类。
定义如下:
private class AuthReceiver extends BroadcastReceiver{ public AuthReceiver() { // TODO Auto-generated constructor stub } @Override public void onReceive(Context context, Intent intent) { //intent就是传递过来的内容 }
第二步:发送广播
intent.setAction(Intent.ACTION_EDIT);//选定动作intent.sendBroadcast(intent); //发送广播
- 如果是静态注册的,那么不需要实例化Receiver,直接sendBroadcast(intent);就会实例化调用处理,在onReceive返回后,接收器销毁。
问题:
- 如何更新UI?
activity的内部类即可 - onReceive如何区分不同广播的?
在注册的时候绑定了动作,在发出广播的时候指定了动作。
动态广播:实例
>
0 0
- android--broadcast(广播)
- Android 广播机制---BroadCast
- Android 广播机制 Broadcast
- Android 广播 Broadcast
- Android之Broadcast(广播)
- Android - Intent广播(broadcast)
- android广播机制Broadcast
- Android 广播BroadCast
- android--广播Broadcast【十三】
- android Broadcast广播
- android广播broadcast详解
- Android:Broadcast广播
- broadcast广播-Android
- Android Broadcast 广播
- 【Android】广播机制 Broadcast
- android中的广播Broadcast
- Android Broadcast 了解广播
- Android发送广播Broadcast
- 2016年读书计划---人生第一个读书计划
- 常见嵌入式WEB服务器 20
- 安卓性能优化积累
- Java面试问题汇总
- UITableview性能优化总结—图片加载、行高返回
- broadcast广播-Android
- linux 清除文件内容
- 2015年的读书总结
- Android中Parcelable接口(进行序列化)用法
- HTML5 简介
- SHU1923 穿墙术(三维BFS)
- web工程路径问题记录
- 手机app测试分析方法 -- 逻辑分析法(数据测试方法)
- WebCollector 2.x入门教程——基本概念