码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Android四大组件之BroadcastReceiver(三)


    上一篇讲了如何动态注册广播、如何静态注册广播,以及两者之间的区别,文章链接如下:

    Android四大组件之BroadcastReceiver(二)_水很清的博客-CSDN博客

    接下来讲一下有序广播中对广播的拦截、有序广播与标准广播的区别、广播的安全性问题

    一、有序广播

    上一篇已经讲过,有序广播是同步的,同一个时刻只有一个接收者接收广播,当该接收者处理完事务后广播才会继续往下传播,但是当前的接收者也可以对广播进行一个拦截截断,使广播到了自己后就完成使命,不会继续传播。

    在这一点有点类似于Android的事件分发机制,事件被消费了,就不会往下传递。截断广播可以直接在接收者的onReceiver方法中调用一下方法:

    abortBroadcast();

    二、有序广播与标准广播的区别

    标准广播:

    1、同级别接收者先后是随机的(无序的)

    2、级别低的后接收到广播

    3、接收器不能截断广播的继续广播,也不能处理广播

    4、同级别动态注册高于静态注册

    有序广播:

    1、同级别接收是随机的(结合下一条)

    2、同级别动态注册高于静态注册

    3、排序规则为:将当前系统中所有有效的动态注册和静态注册的BroadcastReceiver按照priority属性值从大到小排序

    4、先接收的BroadcastReceiver可以对此有序广播进行截断,使后面的BroadcastReceiver不再接收到此广播,也可以对广播进行修改,使后面的BroadcastReceiver接收到广播后解析得到错误的参数值。

    三、安全性问题

    广播可以跨进程(跨app)通信,且exported属性在有intent-filter的情况下默认值是true,所以可能出现以下的安全隐患

    1、其他App可能针对性的发出与当前app intent-filter相匹配的广播,导致app不断的接收到广播并处理

    2、其他App可以注册与当前app一样的intent-filter用于接收广播,获取广播具体的信息。

    针对以上两种情况,业界常见的一些增加安全性的方案包括:

    1、对于应用内部的发送和接收的广播,将exported设置成false,使得非本app内部发出的广播不被接收到。

    2、在广播发送和接收时,增加相应的permission,用于权限验证。

    3、发送广播时,指定特定广播接收器所在的包名,具体通过intent.setPackage(packageName)指定,这样子此广播将只会发送到此包中app内与之相匹配的有效广播接收器中。

    4、采用LocalBroadcastManager的方式。

  • 相关阅读:
    大学生旅游风景主题dreamweaver网页设计大作业-陕西渭南HTML+CSS制作网页
    深度解读ChatGPT:揭开人工智能聊天机器人的神秘面纱
    函数调用、值传递、引用传递、实参与形参
    docker安装的nginx更换默认网页
    呼叫中心系统角色功能的应用
    【JDK】如何实现jdk1.8与jdk11环境的相互切换
    量化投资学习——商品期货研究(一)
    信安软考——第六章 认证技术原理和应用 笔记记录
    【算法练习Day15】平衡二叉树&&二叉树的所有路径&&左叶子之和
    ROS2下使用TurtleBot3-->SLAM导航(仿真)RVIZ加载不出机器人模型
  • 原文地址:https://blog.csdn.net/taoyuxin1314/article/details/126281636
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号