Android知识点 051 —— broadcast 的介绍

转载原文:

返回知识列表:Android知识点list


broadcast 是拿锁的,所以一定将broadcast 操作,放在 handler 里处理,特别是在修改framework的代码的时候!! 【2020-07-01】

 

 

 

5 Receiver生命周期

Receiver何时产生

当系统或其它程序发出广播的时候,Android系统的包管理对象就会检查所有已安装的包中的配置文件有没有匹配的action,如果有,并且可以接收,那么就调用这个BroadcastReceiver,获取BroadcastReceiver对象,然后执行onReceiver()。BroadcastReceiver是在intent匹配后再实例化的,而且每次都是重新实例化的。

以上是说的静态注册Receiver。

 

一般的,广播持有者同时持有处于主线程,可以使用下面的方法来测试。(这里其实想说的是app开发中的receiver)

android.os.Process.myPid();   获取进程号

Thread。currentThread().getId(); 获取线程号

 

onReceiver() 是在UI主线程中,所以不能执行耗时操作。

6 广播的类型

6.1 有序广播

有序广播(Ordered broadcasts)是一种同步执行的广播,在广播发出之后,同一时刻只会有一个广播接收器能够收到这条广播消息,当这个广播接收器中的逻辑执行完毕后,广播才会继续传递。所以此时的广播接收器是有先后顺序的,优先级高的广播接收器就可以先收到广播消息,并且前面的广播接收器还可以截断正在传递的广播,这样后面的广播接收器就无法收到广播消息了。

短信就是有序广播,所以才能拦截垃圾短信。

 

6.2 无序广播

标准广播是一种完全异步执行的广播,在广播发出之后,所有的广播接收器几乎都会在同一时刻接收到这条广播消息,因此他们之间没有任何先后顺序可言。这种广播的效率会比较高,但同时也意味着它是无法被截断的。

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值