Android开发笔记之《广播事件处理学习》
来源:互联网 发布:编程ls是什么意思 编辑:程序博客网 时间:2024/05/28 09:33
Broadcast Receiver和其他时间处理机制类似,只不过事件处理机制是程序组件级别的,广播事件处理机制是系统级别的。
我们通过Intent来启动一个广播事件。
通过sendBroadcast()方法发送广播消息,通过继承BroadcastReceiver类,重载onReceive()方法来响应事件。
Android中定义了很多标准的Broadcast Action来响应系统广播事件,我们也可以自己定义广播事件。
以下是标准的系统广播事件:
常量名称常量值 意义ACTION_BOOT_COMPLETEDandroid.intent.action.BOOT_COMPLETED系统启动完成ACTION_TIME_CHANGEDandroid.intent.action.ACTION_TIME_CHANGED事件改变ACTION_DATE_CHANGEDandroid.intent.action.ACTION_DATE_CHANGED日期改变ACTION_TIMEZONE_CHANGEDandroid.intent.action.ACTION_TIMEZONE_CHANGED时区改变ACTION_BATTERY_LOWandroid.intent.action.ACTION_BATTERY_LOW电量低ACTION_MEDIA_EJECTandroid.intent.action.ACTION_MEDIA_EJECT插入或拔出外部媒体ACTION_MEDIA_BUTTONandroid.intent.action.ACTION_MEDIA_BUTTON按下媒体按钮ACTION_PACKAGE_ADDEDandroid.intent.action.ACTION_PACKAGE_ADDED添加包ACTION_PACKAGE_REMOVEDandroid.intent.action.ACTION_PACKAGE_REMOVED删除包
Broadcast Receiver组件并没有提供可视化界面来显示广播信息
Android提供了Notification和NotificationManager来实现可视化的信息显示
通过使用他们,我们可以显示广播信息的内容、图标以及振动等信息
首先我们来说一下如何创建和接收广播,和Activity,Service一样,需要借助intent,调用sendBroadcast()来发送广播
另外,要写一个类继承BroadcastReceiver类,并重写onReceive()方法。
注意:onReceive()方法最多只能处理几秒钟的东西,如果要处理较长时间的操作(文件上传、下载等),就要用其他方法了
创建广播:
private OnClickListener listener = new OnClickListener(){private String SEND = "SEND_BROADCAST";@Overridepublic void onClick(View v){Intent intent = new Intent(); //创建intentintent.setAction(SEND); //设置ACTION,ACTION在AndroidManifest.xml中设置sendBroadcast(intent); //发送广播}};广播接收处理:
private static final String TAG = "FirstBroadcast";@Overridepublic void onReceive(Context context, Intent intent) //继承BroadcastReceiver重写的onReceive方法{Log.i(TAG, "Broadcast Receive");}上面的是静态绑定注册广播处理方法,也就是在AndroidManifest.xml中定义好ACTION,在代码中setAction,那么启动软件的时候就自动绑定注册了
还有动态绑定方法,调用registerReceiver方法启动绑定注册,调用unregisterReceiver()解除绑定注册
绑定广播演示代码:
SecondBroadcast sbBroadcast = new SecondBroadcast(); //要新建一个BroadcastReceiver类或子类对象用于绑定IntentFilter filter = new IntentFilter(); //注意这里用的是IntentFilterfilter.addAction(FIRST); //为绑定添加ACTIONregisterReceiver(sbBroadcast, filter); //执行绑定注册广播
unregisterReceiver(sbBroadcast); //执行完代码后解除绑定注册,主要操作对象同一性
在绑定和解除绑定时候注意操作的要是同一个对象,而且绑定注册方式不用在AndroidManifest.xml中声明
- Android开发笔记之《广播事件处理学习》
- android学习笔记(16)广播事件处理
- Android学习之广播事件处理
- android学习笔记(17)广播事件处理进阶(注册方法)
- Android应用开发学习笔记之事件处理
- Android开发之广播处理
- android学习笔记之事件处理机制
- Android学习笔记之广播
- Android 开发之广播事件大全
- Android 开发之广播事件大全
- 《Android开发从零开始》——20.广播事件处理(1)
- 《Android开发从零开始》——21.广播事件处理(2)
- android学习笔记-事件处理
- android广播事件处理一
- android广播事件处理二
- Android开发之事件处理
- android学习笔记之六广播(BroadcastReceiver)
- android学习笔记之六广播(BroadcastReceiver)
- Android中图片占用内存的计算
- 单片机串口通信不正确
- hdu——1232——畅通工程
- boost::string_algo详解6——replace相关函数
- 【win8无法连接至无线网络怎么办】
- Android开发笔记之《广播事件处理学习》
- 动态添加删除ExpandableListView的item的例子
- android学习系列-短信发送器与电话拨号器调用(3)
- jQuery插件
- uva 11198 Dancing Digits(隐式图搜索+哈细判重)
- webview 加载url后 缓存问题
- ThinkPHP学习笔记(六)常用的连贯操作和模版的使用
- 采用SHELL,通过SQL LOAD导入一定格式的txt文件至数据库中
- 技巧-底部切换按钮配置