1. 程式人生 > >360 手機衛士 Android 版是如何做到在解除安裝完成後彈出一個網頁的?

360 手機衛士 Android 版是如何做到在解除安裝完成後彈出一個網頁的?

首先從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請自行查閱資料。