android-基础知识-Broadcast

本文介绍了Android广播的分类,包括有序广播、无序广播、静态广播、动态广播和本地广播,强调了有序广播的权限控制和跨进程风险。同时讨论了Android 7.0和8.0对静态广播的限制,并提供了适配方案。还提到了本地广播LocalBroadcastManager的高效特性和使用方法。
摘要由CSDN通过智能技术生成

android-基础知识-Broadcast

概述

主要写 1.广播的分类 2.广播的优缺点 3.广播的实现原理

广播的分类

1.有序广播 无序广播2.静态广播 动态广播 3.本地广播 4.系统广播 5.粘性广播(Sticky Broadcast:粘性广播(在 android 5.0/api 21中deprecated,不再推荐使用,相应的还有粘性有序广播,同样已经deprecated)。)

1.有序广播、无序广播

1.1 无序广播(标准广播)

无序广播又叫标准广播,在广播发出之后,所有的广播接收器几乎都会在同一时刻接收到这条广播的信息,因此他们之间没有任何的先后顺序可言

 sendBroadcast(intentBro, "receiverPermission");

其中"receiverPermission" 参数为非必要。

1.2. 有序广播:

有序广播接收器是有先后顺序的,而且前面的广播可以对后续的广播进行截断,以阻止让其继续广播。权限高者会先获取得到广播的信息

 sendOrderedBroadcast(intentBro, "receiverPermission");

其中"receiverPermission" 参数为必要。

问题1:为啥两种方式receiverPermission一个可以无一个必须有呢?
回答1:
  1. 先说“receiverPermission”参数是干啥的。它是“没有相同权限的其他进程不可以接收到,本进程内不受影响没有此权限的也可以接受到”,当避免其他进程接收的时候可以用它。
  2. 因为有序广播存在高优先级priority拦截低priority的问题,跨进程风险很大,故必须传receiverPermission加以限制。
问题2:广播跨进程风险怎么规避
回答2:
  1. exported=false

    此broadcastReceiver能否接收其他App的发出的广播,这个属性默认值有点意思,其默认值是由receiver中有无intent-filter决定的,如果有intent-filter,默认值为true,否则为false。(同
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值