我已经阅读了很多关于关闭其他应用程序的文档和其他帖子.我知道文档说Android不是这样设计的.Android希望休眠应用程序,而不是杀死进程.这是有道理的但是......我编写了一个应用程序,可以根据用户配置的系统事件自动启动其他应用程序.用户喜欢它,并希望在后续系统事件发生后关闭/终止这些应用程序.我想说的是用户要求我为他们自动化.这是我的应用程序的重点.它会自动启动其他应用程序,现在他们想要自动关闭或终止它们.很多人说这是不可能的,但确实如此.有几个任务杀手应用程序,他们做我想做的事情.我试过了
Process.killProcess(pid);
Run Code Online (Sandbox Code Playgroud)
但这似乎并不多.在该方法上阅读doco,它说Linux Kernal仍然会强制执行权限.我甚至试图杀死所有进程,但它没有做任何事情.也许我没有正确地获得进程列表.我使用以下内容获取要杀死的进程列表
for(RunningAppProcessInfo info:activityManager.getRunningAppProcesses()){
Run Code Online (Sandbox Code Playgroud)
然后我使用Process.killProcess(info.pid); 杀死这个过程.我甚至尝试过:
activityManager.killBackgroundProcesses(String.valueOf(info.pid));
activityManager.killBackgroundProcesses(String.valueOf(info.processName));
Run Code Online (Sandbox Code Playgroud)
然后
Intent i = new Intent();
i.setComponent(new ComponentName(ProcessName, ProcessName+".Main"));
context.stopService(i);
Run Code Online (Sandbox Code Playgroud)
任何人都可以真正回答这个问题而不是告诉我它不应该完成或者问我为什么要这样做呢?请提供代码示例或有意义的内容.
我有一些代码将使用意图启动另一个应用程序,但是我该怎么做才能关闭或杀死另一个应用程序?
这是启动代码(效果很好):
Intent i = new Intent();
i.setAction(Intent.ACTION_MAIN);
i.addCategory(Intent.CATEGORY_LAUNCHER);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
i.setComponent(
new ComponentName(resolveInfo.activityInfo.applicationInfo.packageName,
resolveInfo.activityInfo.name));
Run Code Online (Sandbox Code Playgroud)
我试图杀死后台进程,但没有运气:
ActivityManager activityManager = (ActivityManager) context.getSystemService(context.ACTIVITY_SERVICE);
activityManager.killBackgroundProcesses("com.pandora.android");
Run Code Online (Sandbox Code Playgroud)
我也尝试过杀死它:
context.stopService(new Intent(context, Class.forName("com.bla.bla")));
Run Code Online (Sandbox Code Playgroud)
我想终止其他应用程序,因为我启动了其他应用程序,并且用户请求了此附加功能(自动终止是自动启动的自然扩展)。请在代码中回答如何完成此操作的问题。我知道高级任务经理,所以有可能,但是如何?