android卸載廣播
① Android應用卸載的時候,是在什麼時候進行的廣播接收器的解注冊
一、某些軟體運行時在 任務欄列表 中是不可見的,而是以進程的方式在後台運行,常見的有來電防火牆、簡訊防火牆類軟體、殺毒軟體、加密軟體等需要實時監控的軟體,因此,當然 無法刪 除正在運行中的 軟體;二、解決方法為:1、用進程 管理器查 看進程表,如你能判斷 哪個線程是該程序的進程,則可以關閉它,如無法判斷則 可以先設臵 不顯示系統進程;2、然後關閉所有的非 系統進程,這樣就可以到程序管理里 正常卸載軟體了。
② Android應用如何監聽自己是否被卸載及卸載反
1,注冊BroadcastReceiver,監聽"android.intent.action.PACKAGE_REMOVED"系統廣播
結果:NO。未寫代碼,直接分析,卸載的第一步就是退出當前應用的主進程,而此廣播是在已經卸載完成後才發出的,此時主進程都沒有了,去哪onReceive()呢?
2,若能收到"將要卸載XX包"的系統廣播,在主進程被退出之前就搶先進行反饋處理就好了,可惜沒有這樣的系統廣播,不過經過調研,倒是發現了一個辦法,讀取系統log,當日誌中包含"android.intent.action.DELETE"和自己的包名時,意味著自己將要被卸載。
結果:NO。調試時發現此方法有兩個缺陷,(1)點擊設置中的卸載按鈕即發出此Intent,此時用戶尚未在彈框中確認卸載;(2)pm命令卸載不出發此Intent,意味著被諸如手機安全管家,豌豆莢等軟體卸載時,無法提前得知卸載意圖。
3,由於時間點不容易把控,所以乾脆不依賴系統廣播或log,考慮到卸載過程會刪除"/data/data/包名"目錄,我們可以用線程直接輪詢這個目錄是否存在,以此為依據判斷自己是否被卸載。
結果:NO。同方法1,主進程退出,相應的線程必定退出,線程還沒等到判斷目錄是否存在就已經被銷毀了。
4,改用C端進程輪詢"/data/data/包名"目錄是否存在
結果:YES。藉助Java端進程fork出來的C端進程在應用被卸載後不會被銷毀。
二 方案
Android自API1就有的一個類FileObserver,這個類用於監聽某個文件的變化狀態,如果是目錄,這個類還可以監聽其子目錄及子目錄文件的變化狀態,通過閱讀FileObserver源碼,發現其實現利用了Linux內核中一個重要的機制inotify,它是一個內核用於通知用戶空間程序文件系統變化的機制,詳情可參考http://en.wikipedia.org/wiki/Inotify,裡面對inotify有比較詳細的說明。
使用inotify的好處就在於不需要每1s的輪詢,這樣就不會無謂地消耗系統資源,使用inotify時會用read()方法阻塞進程,直到收到IN_DELETE通知,此時進程重新被喚醒,執行反饋處理流程。
三方案
阻塞結束後,通過調用exec函數發出am命令調起瀏覽器訪問網頁,在API16(Android 4.1.x)的設備上尚可正常訪問網頁,而API17(Android 4.2.x)的設備上連瀏覽器也不能調起。解決方案:增加處理分支,若API>=17,將userSerialNumber傳遞給C端進程,然後在am命令中帶上參數--user userSerialNumber即可
③ android程序怎樣監聽自身程序被安裝和卸載
在android系統中,安裝和卸載都會發送廣播,當應用安裝完成後系統會發android.intent.action.PACKAGE_ADDED廣播。可以通過intent.getDataString()獲得所安裝的包名。當卸載程序時系統發android.intent.action.PACKAGE_REMOVED廣播。同樣intent.getDataString()獲得所卸載的包名。
④ android中注銷自定義廣播代碼
在onStop或者onDestroy裡面插入unregisterReceiver(receiver);
這個receiver就是你自己用registerBroadcastReceiver注冊的自定義廣播。
⑤ 如何卸載androidplayer
卸載方式:
1. 打開主菜單選擇設置。
2. 在設置中選擇應用。
3. 選擇你需要停止的應用,例如player等。
4. 點擊強行停止,同時可能會彈出一個警告,點確定即可。
5. 確定完成 就可以徹底停止這個應用運行了。
6. 點擊卸載即可卸載這個應用。
建議不要卸載,Android系統設置中如果強制停止某些應用,可能會造成程序出錯,閃退,死機,重啟等後果,不過某些應用不給退出的情況下只能用這種方式。
⑥ 安卓開發 如何關閉廣播
很牛逼的一個問題。廣播不是用來關閉的!動態注冊廣播接收器特點是當用來注冊的Activity關掉後,廣播也就失效了。我們可以通過兩種方式注冊BroadcastReceiver,一是在Activity啟動過程中通過代碼動態注冊,二是在AndroidManifest.xml文件中利用<receiver>標簽進行靜態注冊。對於第一種方法,我們需要養成一個良好的習慣:在Activity進入停止或者銷毀狀態的時候使用unregisterReceiver方法將注冊的BroadcastReceiver注銷掉。如果通過第二種方法注冊的BroadcastReceiver,是否需要通過代碼進行注銷呢?如果通過<receiver>標簽來注冊的BroadcastReceiver,那麼該對象的實例在onReceive被調用之後就會在任意時間內被銷毀。也就是說,我們並需要擔心靜態注冊的BroadcastReceiver的銷毀問題。靜態注冊無需擔憂廣播接收器是否被關閉,只要設備是開啟狀態,廣播接收器也是打開著的。也就是說哪怕app本身未啟動,該app訂閱的廣播在觸發時也會對它起作用。
⑦ 如何卸載android.bo8
建議使用專業的程序卸載工具,專業的卸載軟體在卸載後能掃描軟體安裝目錄和注冊表等,能最大程度清理程序帶來的垃圾,從而實現最干凈的卸載。如果你希望系統保持干凈快速穩定工作,這是較好的選擇。如騰訊電腦管家,不僅可以卸載程序,軟體本身還帶有管理系統隨機啟動程序工具,加快系統啟動速度。
⑧ android view中注冊了廣播如何釋放該廣播
調用unregisterReceiver釋放該廣播,可以在view的onDetachedFromWindow的時候去處理,或者在該view被銷毀的時候處理。