我不想讨论用户是否可以杀死一个进程,无论它是否应该这样做。以编程方式杀死另一个进程/应用程序
我只想知道几乎每个Android手机的手机都有'advanced task killer
'这会杀死一个进程,或者force close
(在设置中)选项工作得很好。我尝试过很多方法来杀死一个进程,但都没有结果。但是当我看到这些'advanced task killer
'时,我无法弄清楚我身边有什么问题。
我不想讨论用户是否可以杀死一个进程,无论它是否应该这样做。以编程方式杀死另一个进程/应用程序
我只想知道几乎每个Android手机的手机都有'advanced task killer
'这会杀死一个进程,或者force close
(在设置中)选项工作得很好。我尝试过很多方法来杀死一个进程,但都没有结果。但是当我看到这些'advanced task killer
'时,我无法弄清楚我身边有什么问题。
void killMyProcess() {
Process.killProcess(Process.myPid());
}
当它从法顾名思义,你只能通过这种方法杀死你自己的过程。
假设您已经以A - > B - > C - > D的顺序启动活动,并将A作为您的主要和启动器活动。
你甚至不能通过在你的D活动中调用Process.KillProcess(int pid)
方法来杀死你的应用程序的进程。您需要杀死每个活动D - C - B - A(以相反的顺序)以杀死进程。
因此,杀死其他应用程序进程是不可能的。
您可以使用ActivityManager的killBackgroundProcesses()方法:
ActivityManager am = (ActivityManager) getSystemService(Activity.ACTIVITY_SERVICE);
am.killBackgroundProcesses(packageName);
请注意,您的应用需要拥有KILL_BACKGROUND_PROCESSES许可。因此,在AndroidManifest.xml中,你需要包括:
<uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES" />
它不起作用 – 2015-06-16 11:41:03
它不起作用 – 2016-01-21 13:08:27
它确实有效,在**后台**进程 – lelloman 2017-08-03 07:36:56
参见:http://stackoverflow.com/questions/6303615/how-do-task-managers-kill-apps – 2012-03-05 08:29:03
@anothem:我看过那篇文章,发现Process.sendSignal(pid,Process.SIGNAL_KILL);给出了一个无法解决的错误。 – AbhishekB 2012-03-05 08:38:21
你能显示确切的错误和堆栈跟踪吗? – 2012-03-05 09:26:07