android中的Package替换流程

2023-10-30

android系统在安装,删除,替换,清除数据等与应用相关的动作时,会发出对应的Broadcast,上层的应用通过注册相应的广播事件来做相应的处理。

1,ACTION_PACKAGE_ADDED
当有新的包安装成功的时候,系统会发出此广播

2,ACTION_PACKAGE_REMOVED
当有包被卸载的时候,系统会发出此广播

上面两种广播的用法,很多朋友也已经很熟悉,通过intent.getData().getSchemeSpecificPart();即可获得对应的PackageName

重点是

3,ACTION_PACKAGE_REPLACED
当有包被更新的时候,系统会发出此广播

那么是不是当包更新的时候,跟安装和卸载类似,系统只发出一个REPLACED广播呢?

通过实践以及SDK官方文档的介绍发现,当Package发生替换动作的时候,系统会依次发出三条广播:

ACTION_PACKAGE_REMOVED

ACTION_PACKAGE_ADDED

ACTION_PACKAGE_REPLACED(这三个消息中包含的包名一样)

那ACTION_PACKAGE_REMOVED和ACTION_PACKAGE_ADDED我怎么知道后面会接着ACTION_PACKAGE_REPLACED这条广播呢?

通过intent.getBooleanExtra(Intent.EXTRA_REPLACING, false)我们可以获得EXTRA_REPLACING的值。

所以我们只需要在ACTION_PACKAGE_REMOVED和ACTION_PACKAGE_ADDED中通过intent.getBooleanExtra(Intent.EXTRA_REPLACING, false)来得到这个ACTION_PACKAGE_REMOVED和ACTION_PACKAGE_ADDED是不是由覆盖安装产生的。

原文链接:

android中的Package替换流程

欢迎关注微信公众号:DroidMind
精品内容独家发布平台


呈现与博客不一样的技术干货

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

android中的Package替换流程 的相关文章

  • Android无线网络调试手机

    adb tcpip 5555 adb下载地址 http download clockworkmod com test UniversalAdbDriverSetup msi 3 在设备中下载超级终端 是andriod软件 设置端口 su s
  • APP保活

    APP保活 前言 app保活 在Android中是一种流氓行为 一方面无端浪费用户手机电量 另一方面给用户一种很困惑的感觉 影响用户体验还有可能导致整个Android系统流畅性变差 所以Google官方一种不推荐该功能 也一直在阻止这方面功
  • 【Android】OpenGL ES---绘制3D图形、应用纹理贴图

    绘制3D图形 glDrawElements int mode int count int type Buffer indices 根据indices指定的索引点来绘制三角形 第一个参数mode指定绘制的图形类型 可设置为GL10 GL TR
  • 过度绘制和渲染

    最近在解过度绘制的问题单时 对过度绘制和渲染进行了简要的学习 UI优化和UI渲染 UI 优化究竟指的是什么呢 应该包含两个方面 一个是效率的提升 我们可以非常高效地把 UI 的设计图转化成应用界面 在不同并且保证 UI 界面尺寸和分辨率的手
  • Each module has to have a unique path

    在android工作中从仓库中down下来的时候 首次运行出现 Each module has to have a unique path 使用android studio开发工具 因为同事一起把 iml文件给上传上去了 每次builde都
  • android gpuimage显示的缩放和剪裁模式

    原文 http blog csdn net u011270282 article details 51505755 在gpuimagerender里面有如下方法 GPUImage ScaleType CENTER CROP表示剪裁 可以修改
  • Android快速开发框架-ZBLibrary 源码分享

    坐标标准库ZBLibrary 是一个MVP架构的Android快速开发框架 提供一套开发标准 UI Data Listener 以及模板和工具类并规范代码 封装层级少 简单高效兼容性好 一句代码就可实现全局滑动返回 可重写 集成方便快捷的照
  • Windows下安装Android Studio

    一 下载Android Studio 官网地址 http www android studio org 个人也推荐使用官网推荐的 可以省去一定的步骤跟麻烦 二 安装Android Studio 这里选择下路径 当然也可以不用进行修改 因为我
  • Android插件化主流框架和实现原理

    写在前面 这几年移动开发业界兴起的 插件化技术 的旋风 各个大厂都推出了自己的插件化框架 各种开源框架都评价自身功能优越性 令人目不暇接 随着公司业务快速发展 项目增多 开发资源却有限 如何能在有限资源内满足需求和项目的增长 同时又能快速响
  • ScrollView默认位置不是最顶部

    场景描述 在scrollview中套用了一个recycleview 发现 recycleview上面的部分TextView不能被显示 直接显示的是recycleview的底部 分析原因 在Activity计算窗口的高度时 是在listvie
  • Opengles 2.0 错误 called unimplemented OpenGL ES API

    在使用Android进行opengl es进行开发时 可能会出现这个called unimplemented OpenGL ES API错误 图也没绘出来 如果确定你的模拟器或者真机支持opengl es 并且支持相关版本时 采用2 0时报
  • 腾讯 T10级 Jetpack 学习思维导图意外流出,还不赶紧过来围观?

    引言 2018年 Google 官方推出一个全新的开发组件工具库 Jetpack 并将2017年所推出的一个架构组件库 Architecture Components 作为 Jetpack 的一部分纳入其中 当然 Jetpack 并没有就此
  • adb shell 获取手机分辨率

    使用adb修改屏幕像素密度 此命令针对全志开发板子 adb shell am display density 120 以下命令针对高通的开发板子 获取Android设备屏幕分辨率 adb shell wm size获取android设备屏幕
  • Android基础知识 - 内置SQLite数据库

    文章目录 SQLite数据库简单介绍 创建数据库 SQLiteOpenHelper类 简单概述 DatabaseTest项目 升级数据库 对表中的数据进行操作 添加数据 更新数据 删除数据 查询数据 使用SQL操作数据库 SQLite数据库
  • 校园社区app

    此项目是面向在校大学生开发的一个集预约购物 组织活动 实事热帖于一体的社区app 前后台交互数据采用的是json数据格式 网络请求采用的是volley 后台采用mysql数据库 如果有写的不好的地方还望大家指正 主要功能为 预约购物 组织活
  • Android应用程序如何访问/sys和/proc等目录下的系统文件

    Android 下应用程序不能直接 获得 root 权限 因此如果需要修改 sys 或 proc 等目录下的文件时 有以下两种方法可以选择 通过 service 或虚拟设备的方法将使得应用程序临时 获得 root 权限 对 sys 或 pr
  • Android开发 关于避免切换主题时免闪屏的几种方式

    Android开发 关于避免切换主题时闪屏的几种方式 在activity中调用setTheme来切换夜间模式的方法可能大家有看过相关的文章了 但是调用setTheme设置的主题后界面并没有变化 这时需要调用activity的recreate
  • Android Studio :Could not find com.android.tools.build:aapt2

    Android Studio 又一次升级 从Android Studio3 2升级到Android Studio3 3 每次升级都是抱着必死的很大的决心进行升级 就怕Android Studio罢工 到时候一番乱搞 问题大概是下面这个样子的
  • Android studio创建秘钥提示JKS密钥库使用专用格式。建议使用“keytool -importkeystore -srckeystore....

    1 复制图中 内的内容 keytool importkeystore srckeystore F AndroidTestKey testtow jks destkeystore F AndroidTestKey testtow jks de
  • 【Android11系统开发】上层app通过AIDL监听framework数据

    一 适用场景 在Android系统开发中 需要监听按键 触摸 或者可见窗口大小变化等需求时 你会考虑什么方法来实现呢 通过广播的方式可以实现 但是效果可能并不好 AIDL可以实现跨进程通讯 可以解决以上需求 下面重点分析下如何具体实现 以实

随机推荐

  • zookeeper最新版3.6.2单机、集群

    Linux安装zookeeper3 6 2单机 集群 注意 需要先安装JDK 可以参考这里 Linux 安装JDK1 8 1 下载 wget http mirror bit edu cn apache zookeeper zookeeper
  • 学习Node.js的基础知识和核心概念(全面)

    Node js 这个神奇的技术 融合了前端与后端的力量 让JavaScript在服务器端发挥了异乎寻常的魔力 本文将通过代码和文字解释 全面介绍Node js的特点 从异步非阻塞I O到强大的模块系统 再到丰富的包管理和事件驱动编程 一步步
  • JAVA同步代码块 & 同步方法

    JAVA同步代码块 同步方法 为了解决多线程操作共享数据时产生的安全问题 例如以下代码 if ticket lt 0 卖完了 break else ticket System out println Thread currentThread
  • dss_linkis(datasphere studio-1.1.1、linkis-1.1.1)基础框架安装

    目录 一 基础框架安装 1 1 所需的环境 1 2 环境部署 1 3 dss linkis安装 一 基础框架安装 1 1 所需的环境 我的安装环境如下 与官网给出的相差一点点 CentOS7 DataSphere Studio1 1 1 J
  • 线程的局部变量——ThreadLocal

    ThreadLocal是什么 对这个词语分解 将其分为Thread和Local 顾名思义便是本线程的变量 既然是当前线程的变量 那么就意味着这个变量对于其他线程来说就是隔离的 也就是不可见的 ThreadLocal对每一个线程都有一个副本
  • Eclipse汉化教程

    前言 首次使用Eclipse时 我们对那些不知道的英语都感到迷惑 很多人都会上X度查 那么 如果不用X度 我们该如何进行汉化呢 1 Babel链接获取 到Eclipse Babel Project Downloads获取Babel链接 如图
  • TCP的四个拥塞控制算法

    目录 假定 慢开始 拥塞避免算法 快重传 快恢复 假定 cwnd 拥塞窗口 swnd 发送窗口 swnd cwnd ssthresh 门限值 发送方维护一个叫做拥塞窗口cwnd的状态变量 其值取决于网络的拥塞程度 并且动态变化 拥塞窗口cw
  • 【C语言进阶】⑥函数指针详解

    一 函数指针 1 概念 函数指针 首先它是一个指针 一个指向函数的指针 在内存空间中存放的是函数的地址 请看示例 int main int a 10 int pa a char ch c char pc ch int arr 10 0 in
  • java调用C或者C++动态库dll

    java调用C或者C 动态库dll 本文章使用的是IntelliJ IDEA Community Edition 2021 2 3版本测试的 1 新建项目 linjie demo 添加类HelloLinjie 2 选择项目 新建 目录 输入
  • redis 5 HyperLogLog 布隆过滤器 GeoHash 和 scan

    空闲的时候可以用root登录服务器 玩下左轮手枪 RANDOM 6 0 rm rf echo Clicks 这次我们一起来看下redis的HyperLogLog 布隆过滤器 GeoHash 和 scan HyperLogLog 先看个场景
  • 第1章 前 言

    来源 我是码农 转载请保留出处和链接 本文链接 http www 54manong com id 1258 1 1 问题的背景 1 1 1 RFID技术 RFID即无线射频识别技术 Radio Frequency Identificatio
  • 一维动态规划-拾取硬币

    1 问题引入 假如有n个硬币排在一行 如 c 0 c 1
  • opengl测试操作

    深度测试 深度缓冲 Depth Buffer 来防止被阻挡的面渲染到其它面的前面 在这一节中 我们将会更加深入地讨论这些储存在深度缓冲 或z缓冲 z buffer 中的深度值 Depth Value 以及它们是如何确定一个片段是处于其它片段
  • CoordinatorLayout+ToolbarLayout+Behavior实现动态搜索框

    文章目录 最终效果图 参照京东 1 实现思路 2 具体流程 3 问题解决 项目地址 最终效果图 参照京东 1 实现思路 CoordinatorLayout中可以用Behavior实现特定的布局位置和滑动效果 我们使用Behavior来控制搜
  • DataSourceBuilder.create().build()

    Spring Boot also provides a utility builder class DataSourceBuilder that can be used to create one of the standard data
  • 【MQTT】MQTT实现订阅发送demo

    Mqtt简单实现发送消息 订阅消息 系列文章目录 目录 Mqtt简单实现发送消息 订阅消息 系列文章目录 安装好Mosquitto maven引入依赖 创建发布客户端 PublishClient java 创建订阅客户端 Subscribe
  • 计算机网络(16)-计算机网络应用示例

    目录 一 音频视频传输 二 语音电话的流量控制 服务质量QoS 1 数据分组标记优先级 2 路由器流量管制 3 路由器调度机制分配带宽 4 呼叫接纳 三 无线网络 无线局域网的组成 1 有固定基础设施的无线局域网 2 移动自组网络 一 音频
  • LaTex中把下标置于文本正下方的方法 (转载)

    转载一篇文章 因为我想打出 H z H 0 J m
  • Everything下载及使用教程【非常详细】(磁盘文件搜索神器)

    下载地址https www voidtools com zh cn 下载完以后双击exe安装 选择简体中文 点击ok 点击我接受 选择安装目录 点击下一步 保存设置和数据到文件夹 选择安装到文件夹 NTFS索引 选择安装Everything
  • android中的Package替换流程

    android系统在安装 删除 替换 清除数据等与应用相关的动作时 会发出对应的Broadcast 上层的应用通过注册相应的广播事件来做相应的处理 1 ACTION PACKAGE ADDED 当有新的包安装成功的时候 系统会发出此广播 2