位置: 编程技术 - 正文
推荐整理分享Android之BroadcastReceiver,希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!
简介:
BroadcastReceiver本质上就是一种全局的监听器,用于监听系统全局的广播消息,因此它可以非常方便地实现系统中不同组件之间的通信。
特点:
1.BroadcastReceiver用于接收程序所发出的Broadcast Intent,与应用程序启动Activity、Service相同;
2.当应用程序发出一个Broadcast Intent之后,所有匹配该Intent的BroadcastReceiver都有可能被启动;
用法:
网上流行的一张图片可以很好的感受到broadcastreceiver的主要用法:
本次我们通过一个小的示例来一起学习BroadcastReceiver:
建立三个广播类,前两个在manifest里面注册,称为静态注册,最后一个没有在manifest里面注册而在代码中注册,称为动态注册,发送广播的时候有显示发送和隐式发送两种区别。
首先我们来看一下三个广播接收器类的定义以及manifest里面的片段内容如下:
主界面共有5个按钮用来测试,主界面类的定义如下:
总结:
1. 每次系统广播(Broadcast)事件发生后,系统就会创建对应的BroadcastReceiver实例,并自动触发它的onReceive()方法,onReceive()方法执行完后,BroadcastReceiver的实例就会被销毁;
2.如果BroadcastReceiver的onReceive()方法不能在秒内执行完成,Android会认为该程序无响应。所以不要在广播接收者的onReceive()方法里执行一些耗时的操作,否则会弹出ANR(Application No Response)的对话框;
3.如果确实需要根据广播来完成一项比较耗时的操作,则可以考虑通过Intent启动一个Service来完成该操作。不应考虑使用新线程去完成耗时的操作,因为BroadcastReceiver本身的生命周期极短,可能出现的情况是子线程可能还没有结束,BroadcastReceiver就已经退出了;
最后在这里附上整个demo工程源码:Android BroadcastReceiver
ListView.setOnItemClickListener不起作用的原因 ListView.setOnItemClickListener不起作用的原因是item的layout中对以下两个属性设置为true:android:focusable=trueandroid:focusableInTouchMode=true将其改为false或者不设置(
Android 沉浸式全屏的实现方法 原文地址:
android 第一次启动滑动界面 一.滑动界面:第一次启动时除了启动动画外,可能还有着滑动功能介绍界面,现在记录一下这种界面的实现方式,接着上篇启动动画之后的效果附加上
上一篇:Android之监听手机软键盘弹起与关闭(安卓手机 监听功能)
下一篇:ListView.setOnItemClickListener不起作用的原因
友情链接: 武汉网站建设