android 覆盖安装广播,android监听本身应用覆盖安装
发布日期:2021-06-24 13:17:48 浏览次数:2 分类:技术文章

本文共 2063 字,大约阅读时间需要 6 分钟。

android监听自身应用覆盖安装

按照网上所说自定义PackageReceiver类继承BroadcastReceiver,重写onReceive方法。

// 安装

if (intent.getAction().equals("android.intent.action.PACKAGE_ADDED")) {

String packageName = intent.getDataString();

System.out.println("android.intent.action.PACKAGE_ADDED---------------" + packageName);

}

// 覆盖安装

if (intent.getAction().equals("android.intent.action.PACKAGE_REPLACED")) {

String packageName = intent.getDataString();

System.out.println("android.intent.action.PACKAGE_REPLACED---------------" + packageName);

}

// 移除

if (intent.getAction().equals("android.intent.action.PACKAGE_REMOVED")) {

String packageName = intent.getDataString();

System.out.println("android.intent.action.PACKAGE_REMOVED---------------" + packageName);

}

然后AndroidManifest.xml里面:

为什么在bluestack模拟器中可以监听到自己应用的覆盖安装,而在真机中却监听不到呢。

android

BroadcastReceiver

监听应用覆盖安装

分享到:

------解决方案--------------------

你的应用有activity吗?能收到boot complete广播吗?

------解决方案--------------------

引用:Quote: 引用:你的应用有activity吗?能收到boot complete广播吗?

有activity,但是没使用boot complete广播,能说说具体思路吗?

你在哪台机器上测试的?

------解决方案--------------------

自身的升级替换是监听不到的  因为你执行完安装的操作后  应用本身已经被杀掉了

------解决方案--------------------

曲线救国吧,把版本号保存起来,启动应用时获取应用版本,跟上一次保存的版本进行比较,如果大的话,就说明刚安装了新版本。

int versionCode = context.getPackageManager().getPackageInfo(context.getPackageName(),

0).versionCode;

int version = PrefUtil.getLastVersion(context);//get last restore version

if(version 

PrefUtil.setLastVersion(context, versionCode);//restore new version

//do something.

}

------解决方案--------------------

引用:Quote: 引用:自身的升级替换是监听不到的  因为你执行完安装的操作后  应用本身已经被杀掉了

我如果先安装了A应用,然后覆盖安装B应用,怎么能在A应用中获取B应用的配置文件和A应用的配置文件一块儿使用呢?

你指的配置文件是什么?  还有  你用b覆盖a  a是启动不了的

------解决方案--------------------

引用:能不能写一个全局的监听应用覆盖安装的广播,就是不随应用的卸载而消亡的?不能的。应用覆盖安装的过程是先停止当前正在运行的应用,然后进行文件覆盖再安装的,安装完成之后,再发出android.intent.action.PACKAGE_REPLACED广播。

------解决方案--------------------

引用:Quote: 引用:Quote: 引用:Quote: 引用:自身的升级替换是监听不到的  因为你执行完安装的操作后  应用本身已经被杀掉了

我如果先安装了A应用,然后覆盖安装B应用,怎么能在A应用中获取B应用的配置文件和A应用的配置文件一块儿使用呢?

你指的配置文件是什么?  还有  你用b覆盖a  a是启动不了的

就是本地存储在assets目录下的一个文件,记录一些该安装包的配置信息。用b覆盖a,a是可以启动的。

你确定b覆盖a后   还可以启动a?  相同的包名?

转载地址:https://blog.csdn.net/weixin_33073525/article/details/117530786 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:android java拷贝文件,在android中将数据从一个文件复制到另一个文件非常慢?
下一篇:android下载文件地址,安卓迅雷下载的文件在哪里迅雷下载文件存放位置-独木成林...

发表评论

最新留言

很好
[***.229.124.182]2024年04月22日 04时46分30秒