您的位置:首页 > 移动开发 > Android开发

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

2013-02-16 10:14 459 查看
转自: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请自行查阅资料。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐