BroadcastReceiver
来源:互联网 发布:淘宝的费列罗是假货 编辑:程序博客网 时间:2024/05/17 08:00
BroadcastReceiver配置
//配置receiver的action匹配项,对应的activity类名(在activity中配置)<activity> <receiver andorid:name=".ReceiverClassName"> <intent-filter> <action...../> </intent-filter> </receiver></activity>
BroadcastReceiver的执行
- 在广播消息到达时,系统会创建一个新的BroadcastRceiver实例并执行onReceive()方法处理广播响应,当处理完成后实例就会被销毁
- 在onReceive()中如果处理时间超过5秒会产生ANR(Application not response)的错误
- 在onReceive()中不能处理耗时的操作,如果需要进行耗时操作时,必须使用service,不可以使用子线程。这是由于使用子线程的话,onRecive()的处理时间很短,当创建子线程处理时,主线程已经处理被销毁,该子线程所在的进程即成为了空进程;当系统需要回收内存空间时,优先回收空进程,因此子线程可能无法完成就会被回收,这是不可靠的
发送广播
- sendBroadcast(),发送Normal Broadcast,完全异步,可以在同一时刻被所有接收者接收到传递效率高
- sendOrderedBroadcast(),发送Orderred Broadcast,按优先及依次接收广播并处理,可以将处理的结果传递给下一个接收者处理,效率比较低
//使用OrderedBroadcast优先接收的接收者可以终止广播的传递,使后面的接收者不再接收到该广播(拦截)//优先接收的接收者可以通过setResultExtras(Bundle)将处理结果存入broadcast传递给下一个接收者//重写接收者onReceive()方法public void onReceive(Context context, Intent intent){ //传递新数据 Bundle data=new Bundle(); data.putString("key","vaule"); setResultExtras(data); //取消broadcast传播 //abortBroadcast();}
- 配置优先级
//在activity中注册的receiver中配置<activity> <!--注册receiver,指定该组件的类名--> <receiver android:name=".ReceiverClassName"> <!--设置receiver的优先级,-1000到1000之间的值,值越大,优先级越高--> <intent-filter android:priority="1000"> <!--设置receiver对应的action,用于匹配并启动receiver--> <action.../> </intent-filter> </reciver></activity>
- 部分系统广播在发送时已经指定了必须接收的broadcastReceiver,此时终止广播并不能阻止该receiver接收到广播(如拨号程序)
0 0
- BroadcastReceiver
- BroadcastReceiver
- BroadcastReceiver
- BroadcastReceiver
- BroadcastReceiver
- BroadcastReceiver
- BroadcastReceiver
- BroadcastReceiver
- BroadcastReceiver
- BroadCastReceiver
- BroadcastReceiver
- broadcastReceiver
- BroadcastReceiver
- BroadcastReceiver
- BroadcastReceiver
- BroadcastReceiver
- BroadcastReceiver
- BroadcastReceiver
- uva 19759 (Dp+概率)
- spark1.2.0源码分析之ShuffledRDD的Stage划分
- 指针与数组的区别
- 如何简要判断自己对.cpp文件的修改是否生效? 如何简要判断程序所进入的预编译分支?
- 【将金令】非农背后有何密谋?
- BroadcastReceiver
- java 从jar包中读取资源文件
- activity
- unity3d Mecanim武器骨骼动画错位解决方法
- Android Studio 环境搭建及使用
- 计算机组成原理学习笔记(二)
- Intent
- 2.1 “关系”数据库,什么是“关系”?
- tomcat下如何修改访问路径