Android 實(shí)現(xiàn)徹底退出自己APP 并殺掉所有相關(guān)的進(jìn)程
徹底殺掉 App 相關(guān)進(jìn)程的代碼
public void killAppProcess()
{
//注意:不能先殺掉主進(jìn)程,否則邏輯代碼無法繼續(xù)執(zhí)行,需先殺掉相關(guān)進(jìn)程最后殺掉主進(jìn)程
ActivityManager mActivityManager = (ActivityManager)CurrentActivity.this.getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RunningAppProcessInfo> mList = mActivityManager.getRunningAppProcesses();
for (ActivityManager.RunningAppProcessInfo runningAppProcessInfo : mList)
{
if (runningAppProcessInfo.pid != android.os.Process.myPid())
{
android.os.Process.killProcess(runningAppProcessInfo.pid);
}
}
android.os.Process.killProcess(android.os.Process.myPid());
System.exit(0);
}
需要注意的坑
1. KillProcess()
android.os.Process.killProcess(android.os.Process.myPid())
可以殺死當(dāng)前應(yīng)用活動的進(jìn)程,這一操作將會把所有該進(jìn)程內(nèi)的資源(包括線程全部清理掉)。當(dāng)然,由于 ActivityManager 時刻監(jiān)聽著進(jìn)程,一旦發(fā)現(xiàn)進(jìn)程被非正常 Kill,它將會試圖去重啟這個進(jìn)程。
這就是為什么,有時候當(dāng)我們試圖這樣去結(jié)束掉應(yīng)用時,發(fā)現(xiàn) app 會自動重新啟動的原因.
2. System.exit()
System.exit() 是 Java 中結(jié)束進(jìn)程的方法,調(diào)用它將關(guān)閉當(dāng)前的 JVM 虛擬機(jī)。
//表示是正常退出;
System.exit(0);
//表示是非正常退出,通常這種退出方式應(yīng)該放在catch塊中
System.exit(1);
3. App crash 后重啟
上面鏈接中的文章寫得很好很全面,參考即可
以上這篇Android 實(shí)現(xiàn)徹底退出自己APP 并殺掉所有相關(guān)的進(jìn)程就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
- 創(chuàng)建Android守護(hù)進(jìn)程實(shí)例(底層服務(wù))
- Android基于Aidl的跨進(jìn)程間雙向通信管理中心
- Android跨進(jìn)程拋異常的原理的實(shí)現(xiàn)
- Android 雙進(jìn)程守護(hù)的實(shí)現(xiàn)代碼
- android studio3.0.1無法啟動Gradle守護(hù)進(jìn)程的解決方法
- Android進(jìn)程間通信實(shí)踐的示例代碼
- 詳解Android跨進(jìn)程IPC通信AIDL機(jī)制原理
- 詳解android webView獨(dú)立進(jìn)程通訊方式
- 詳解Android 進(jìn)程
相關(guān)文章
Android實(shí)現(xiàn)自定義ImageView的圓角矩形圖片效果
android顯示圓角矩形的圖片其原理就是首先獲取到圖片的Bitmap,然后進(jìn)行裁剪對應(yīng)的圓角矩形的bitmap,然后在onDraw()進(jìn)行繪制圓角矩形圖片輸出2018-05-05
android實(shí)現(xiàn)可自由移動、監(jiān)聽點(diǎn)擊事件的懸浮窗
這篇文章主要為大家詳細(xì)介紹了android實(shí)現(xiàn)可自由移動、監(jiān)聽點(diǎn)擊事件的懸浮窗,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-12-12
Android webview與js交換JSON對象數(shù)據(jù)示例
js主動調(diào)用android的對象方式,android也無法返回給js一個jsonobject,需要js做一下轉(zhuǎn)換,具體代碼如下,感興趣的朋友可以參考下哈2013-06-06
RxJava入門指南及其在Android開發(fā)中的使用示例
RxJava是JVM的一個擴(kuò)展庫,它能夠幫助Java更加方便地實(shí)現(xiàn)基于事件的編程,這對安卓來說十分有用,接下來就一起來看一下RxJava入門指南及其在Android開發(fā)中的使用示例:2016-06-06
Android編程出現(xiàn)Button點(diǎn)擊事件無效的解決方法示例
這篇文章主要介紹了Android編程出現(xiàn)Button點(diǎn)擊事件無效的解決方法,結(jié)合實(shí)例形式分析了Android編程中出現(xiàn)Button點(diǎn)擊事件無效的原因及相關(guān)的解決方法,需要的朋友可以參考下2018-02-02
Android編程實(shí)現(xiàn)錄音及保存播放功能的方法【附demo源碼下載】
這篇文章主要介紹了Android編程實(shí)現(xiàn)錄音及保存播放功能的方法,結(jié)合實(shí)例形式分析了Android基于MediaRecorder類進(jìn)行錄音機(jī)保存播放功能的相關(guān)操作技巧,并附帶demo源碼供讀者下載,需要的朋友可以參考下2018-01-01

