【Android 应用开发】Android 杀进程总结 ( 杀后台进程 | 杀前台进程 | 杀其它进程 )
文章目錄
- 一、Android 殺后臺進程
- 二、Android 殺前臺進程
- 三、Android 殺其它進程
一、Android 殺后臺進程
使用 Android 的進程 api 類 android.os.Process 殺死進程 :
android.os.Process.killProcess(android.os.Process.myPid());如果當前進程處于前臺 , 殺死該進程后 , Android 系統會重啟該進程 , 這是 Android 系統本身的機制 ;
注意 : 調用該方法殺死的應用 , 不能處于前臺任務棧中 ;
使用 Java 的進程 api 類 java.lang.System 殺死進程 : 參數中傳入 000 表示正常退出 , 傳入其它值表示非正常退出 ;
java.lang.System.exit(0);如果當前進程處于前臺 , 殺死該進程后 , Android 系統會重啟該進程 , 這是 Android 系統本身的機制 ;
調用該方法殺死的應用 , 不能處于前臺任務棧中 ;
ActivityManager 會監聽前臺進程 , 一旦發現應用不是正常結束 , 就會重啟應用 , 使用上述兩種方法殺死的進程就屬于非正常殺死的進程 , 應用進程會重新啟動 ;
二、Android 殺前臺進程
關閉了所有的 Activity 界面窗口 , 應用進程自然就被殺死了 ;
activity.finishAffinity();上述代碼可以關閉所有的本任務棧內的 Activity 窗口界面 , 自然就可以殺死本進程 ; 如果想要殺得更徹底 , 使用該方法與上面的兩種殺進程的方法結合使用 ;
殺死前臺進程 , 將所有的 Activity 關閉 , 然后調用 android.os.Process.killProcess(android.os.Process.myPid()) 或 java.lang.System.exit(0) 中的一種方法即可 ;
關閉 Activity 建議使用 Activity 類的 finishAffinity() 方法 , 該方法可以關閉當前前臺任務棧中的所有 Activity , 之后再調用上述兩個殺進程的方法 , 即可成功關閉進程 , 應用不會重啟 ;
// 1. 調用 Activity 類的 finishAffinity() 方法關閉任務棧中所有 Activity 界面 activity.finishAffinity();// 2. 使用 Android 的進程 api 類 `android.os.Process` 殺死進程 android.os.Process.killProcess(android.os.Process.myPid());// 3. 使用 Java 的進程 api 類 `java.lang.System` 殺死進程 java.lang.System.exit(0);三、Android 殺其它進程
獲取 ActivityManager , 然后使用 killBackgroundProcesses 方法殺死后臺的其它進程 ;
ActivityManager activityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE); activityManager.killBackgroundProcesses("com.google.example");需要使用 android.permission.KILL_BACKGROUND_PROCESSES 權限 ;
在清單文件中配置該權限 :
<uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES"/>總結
以上是生活随笔為你收集整理的【Android 应用开发】Android 杀进程总结 ( 杀后台进程 | 杀前台进程 | 杀其它进程 )的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【数字信号处理】数字信号处理简介 ( D
- 下一篇: 【数字信号处理】数字信号处理简介 ( 抽