2011-08-22 84 views
0

我試圖找出在設備中運行的進程列表。 之後,我想強制關閉除當前應用程序以外的所有進程。 我嘗試使用下面的代碼。它列出了處理過的,但並沒有殺死進程。如何強制關閉當前正在運行的應用程序在android

ActivityManager manager = (ActivityManager) context.getSystemService(ACTIVITY_SERVICE); 

List<RunningAppProcessInfo> process = manager.getRunningAppProcesses(); 




    for (int i = 1 ;i< process.size();i++) 

    { 
    int pid = process.get(i).pid;    

    System.out.println("Task " + process.get(i).processName); 

    android.os.Process.killProcess(pid);is 
    } 

上面的代碼只是我試圖殺死進程。在調用kill process之後再次調用getRunningAppProcess()來檢查進程是否被終止。它仍然顯示所有的過程。

+0

你爲什麼要這麼做? – cjk

+0

這是我的一個要求...當我的應用程序運行時,我想關閉所有其他應用程序。 – Nithi

+1

但是爲什麼?我想要一百萬英鎊,但只是因爲我想買點好東西。您是否瞭解Android如何管理不在前臺的應用程序?它實際上很聰明,所以你甚至不需要任務殺手應用程序。 – cjk

回答

3

它列出了處理過的但它沒有殺死進程。

當然。您無權使用killProcess()殺死其他進程。我不知道你爲什麼認爲你有這樣的權利。

我們想要殺死所有前景以及後臺應用程序。

這會使操作系統崩潰。

如果您只希望運行應用程序,請使用您自己的固件,自己的操作系統和自己的GUI框架構建自己的設備,然後將應用程序放在這些設備上,然後分發這些設備。

+0

我已經創建了一些示例應用程序。我試圖關閉我的另一個應用程序..這也不會發生在killprocess() – Nithi

+0

@Ram:這是因爲一個進程無權終止任何其他進程。 – CommonsWare

1

您可以嘗試killBackgroundProcesses()(它需要包名稱),您需要KILL_BACKGROUND_PROCESSES權限。你可以在沒有特別許可的情況下殺死你自己的進程(最後一定要做)。 如果它仍然無法正常工作,則需要對電話進行root操作,然後以root身份執行操作。

+1

我試過這個..它工作,但我試圖殺死com.android.media,但它並沒有被殺死。我認爲有一些限制來殺死內置的應用程序。如果我錯了,請糾正我 – Nithi

相關問題