天天看點

android kill 指令殺死程序,【Android 應用開發】Android 殺程序總結 ( 殺背景程序 | 殺前台程序 | 殺其它程序 )...

一、Android 殺背景程序

使用 Android 的程序 api 類 android.os.Process 殺死程序 :

android.os.Process.killProcess(android.os.Process.myPid());

如果目前程序處于前台 , 殺死該程序後 , Android 系統會重新開機該程序 , 這是 Android 系統本身的機制 ;

注意 : 調用該方法殺死的應用 , 不能處于前台任務棧中 ;

使用 Java 的程序 api 類 java.lang.System 殺死程序 : 參數中傳入 0

00 表示正常退出 , 傳入其它值表示非正常退出 ;

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 權限 ;

在清單檔案中配置該權限 :