BroadcastReceiver广播 笔记

1、BoradcastReceiver是没有界面的,action可以有多个
BroadcastReceiver必须注册
Broadcastreceiver的生命周期比较短,只在onReceive方法体中。
在onReceiver方法中,不能做耗时的工作,如果主线程一但被阻塞超过5秒(有设备决定,一般最多不会超过10秒)以上,就会出现ANR(Application Not Responding当某个应用处于长期假死状态(UI主线程被阻塞,做一些耗时的工作)时,android系统会弹出一个窗口。)
onReceiver是在UI主线程里面执行的,UI主线程是描述UI界面,并响应用户的操作。
BoradcastReceiver的作用:
1)、用来接收广播,可以根据自己的需求订阅相关的广播,当相关的广播在系统中传递的时候,系统就会去通知订阅了该广播的广播接收者。
2)、可以在不同的应用程序之间传递信息,也就是跨进程
BoradcastReceiver的分类:
1)、普通广播:同一时刻,只要订阅了该广播的广播接收者都能接收到广播
2)、顺序广播:按照优先级从高到低有序地在广播接收者之间传递,如果某一个广播接收者不想让该广播继续传递,则它可以终止该广播的传递
优先级从-1000~1000,默认优先级是0.
Priority的使用前提:1、顺序广播
2、有多个广播接收者订阅同一个广播
abortBroadcast(); // 终止广播的传递,只要广播的类型是顺序广播的时候起作用。
sendBroadcast(); // 发送普通广播
sendOrderBroadcast(intent, 接收权限); // 发送顺序广播
接收权限: 最好用应用的包名作为权限的前缀,再加上意义。

自定义权限:在使用自定义权限的时候,需要先定义permission,permission在任意的应用程序中定义都可以静态注册不依赖于任何组件,不用new对象也不用注销,适合在onStrat()和onStop()里面注册和注销广播。

public abstract Intent registerReceiver(BroadcastReceiver receiver, IntentFilter filter, String broadcastPermission, Handler scheduler);

动态注册广播的优点是效率高,缺点是不一定能实时的接收广播,因为它依附的组件关闭以后,广播就注销了,所以接收不到

转自:http://my.eoe.cn/957795/archive/5007.html?f_section=similar

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值