2011-12-28 97 views
1

我正在編寫攔截應用程序啓動的應用程序,將其殺死,然後在滿足某些權限時重新啓動應用程序。我設法通過監視系統日誌的服務來弄清楚第一部分(啓動應用程序)。我現在正在努力處理剛剛啓動的應用程序。我試圖使用:如何從另一個服務中殺死Android應用程序和所有正在運行的服務/任務?

ActivityManager.killBackgroundProcesses(packageName); 

但我不確定這是否會殺死整個應用程序,包括它啓動的所有服務/任務。我已經嘗試使用killBackgroundProcesses()來不分青紅皁白地殺死所有正在啓動的應用程序,但應用程序似乎仍然開始。

我也嘗試過android.os.Process.killProcess(pid),傳遞其他應用程序的pid,但該應用程序似乎仍然開始。

回答

1

每項活動都有自己的processID,而服務沒有自己的id或其他內容,service是Activity的一部分。當你殺死活動進程中的將停止所有的部分任務或服務太

參考http://developer.android.com/resources/faq/framework.html

+0

感謝。所以如果我殺了這個進程,它會阻止應用程序的所有部分運行並從內存中移除它? 我怎樣才能殺死另一個應用程序的進程?我試過android.os.Process.killProcess(PID),但沒有奏效。當我嘗試從adb shell中「殺死pid」時,雖然它工作。 – user1118764 2011-12-28 06:58:23

+0

請參閱http://stackoverflow.com/questions/4921244/android-task-kill – 2011-12-28 07:16:44

+0

因此,似乎沒有辦法一個服務來殺死另一個進程/應用程序? – user1118764 2011-12-28 07:22:59

相關問題