360 手机卫士 Android 版是如何做到在卸载完成后弹出一个网页的?

本文介绍了一种在Android应用被卸载时触发网页弹窗的技术方案。通过监听系统日志中特定的消息,应用可以在被卸载的瞬间启动系统浏览器打开指定网址。这种方法利用了ActivityManager输出的日志信息来实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转自:http://www.zhihu.com/question/20773194/answer/16136814

 

首先从Android弹出网页开始分析。
在Android开发中,通过系统默认浏览器弹出网页是通过如下的代码来实现的:

startActivity(new Intent(Intent.ACTION_VIEW,Uri.parse("http://www.baidu.com")));


那么也就是说,360手机卫士在卸载的过程中执行上述代码就可以达到所谓的弹出一个网页的效果。那么接下来的问题是它怎么知道自己被卸载了?
我们知道,在卸载应用的时候,Android系统会发送一个系统广播,但是卸载的是你自己你就没办法收到这个广播(或者说来不及收到广播,那时不管是进程还是线程都会被kill掉),Android系统也没有给开发者一个在应用被卸载的时候做一些事情的权利。但是,我们可以通过监视Android系统输出的log来判断“自己是否正在被卸载”。
这是目前就我个人所知最常用的办法。当你的应用(包括其他任何应用)被卸载时,Android系统的ActivityManager会打印出一行log,大概是:removing:你的包名。这个log是在应用卸载界面点击”确定“后的一瞬间输出的,这一瞬间虽然很短,但是足够正在被卸载的应用捕获到,当捕获的时候,调用上述代码就可以达到在卸载后弹出一个网页的效果了。
这只是个人的一种思路,具体如何捕获系统Log请自行查阅资料。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值