自动关闭Android中的应用程序

自动关闭Android中的应用程序,android,Android,我已经阅读了很多关于关闭其他应用程序的文档和其他帖子。我知道文档上说Android不是这样设计的。Android希望休眠应用程序,而不是终止进程。这是有道理的,但是。。。。我编写了一个应用程序,可以根据用户配置的系统事件自动启动其他应用程序。用户喜欢它,并希望在随后的系统事件后关闭/杀死这些应用程序。我想说的是,用户要求我为他们实现自动化。这就是我应用程序的要点。它会自动启动其他应用程序,现在他们想要自动关闭或杀死它们。很多人说这是不可能的,但事实确实如此。有几个任务杀手应用程序在那里,他们做的

我已经阅读了很多关于关闭其他应用程序的文档和其他帖子。我知道文档上说Android不是这样设计的。Android希望休眠应用程序,而不是终止进程。这是有道理的,但是。。。。我编写了一个应用程序,可以根据用户配置的系统事件自动启动其他应用程序。用户喜欢它,并希望在随后的系统事件后关闭/杀死这些应用程序。我想说的是,用户要求我为他们实现自动化。这就是我应用程序的要点。它会自动启动其他应用程序,现在他们想要自动关闭或杀死它们。很多人说这是不可能的,但事实确实如此。有几个任务杀手应用程序在那里,他们做的正是我想做的事情。我试过了

Process.killProcess(pid); 
但这似乎没什么作用。阅读该方法的文档时,它表示Linux内核仍将强制执行权限。我甚至试图杀死所有进程,但它什么也没做。也许我没有正确地获得进程列表。 我使用以下命令来获得要终止的进程列表

for(RunningAppProcessInfo info:activityManager.getRunningAppProcesses()){
然后我用 进程。进程(信息pid); 终止进程。 我甚至试过:

activityManager.killBackgroundProcesses(String.valueOf(info.pid));
activityManager.killBackgroundProcesses(String.valueOf(info.processName));
然后

Intent i = new Intent();
i.setComponent(new ComponentName(ProcessName,   ProcessName+".Main"));
context.stopService(i);

有谁能回答这个问题而不告诉我不应该这样做,或者问我为什么一开始就想这样做?请提供代码示例或有意义的内容。

您所说的完全可能。只需获取ActivityManager系统服务,然后使用.restartPackage()(已弃用)或.killbackgroundprocesss()

您将需要:

<uses-permission android:name="android.permission.RESTART_PACKAGES" />
<uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES" />


查看我在问题中发布的代码,您可以看到我实际上在使用activityManager.killBackgroundProcess()。我也使用了.restartPackage(),但这也不起作用。我也有这两种权限。我没有得到一个错误,当我试图杀死它只是没有杀死应用程序。我启动计算器应用程序的目的是,我可以看到它作为一个进程运行,但当我杀死它时,它保持打开,好像我没有做任何事情。即使我试图杀死所有进程,也只会杀死我的应用程序进程。就好像我没有操作系统级别的权限来杀死其他应用程序一样。好吧,我终于让它起作用了!这里有一个陷阱:我让计算器可见,即使你终止了进程,Android也不会删除活动视图。如果我先显示桌面,那么我可以关闭应用程序。完美的测试是潘多拉。使用此应用程序,即使看不到音乐,您也可以收听音乐。当我在它看得见的时候杀死它时,似乎什么也没发生。如果我先显示桌面,然后关掉它,音乐就会停止。@luke:我一步一步地跟着你走+我感谢你没有放弃。您能告诉我显示桌面是什么意思吗?@Luke:在您从社区获得了所有支持之后,再多做一点贡献是公平的。@Campiador使用以下内容返回主页:
Intent startMain=new Intent(Intent.ACTION\u MAIN);startMain.addCategory(Intent.CATEGORY\u HOME);startMain.setFlags(意图、标志、活动、新任务);这就是startActivity(startMain)这将模拟按下home按钮,有效隐藏所有应用程序,但仍在运行
<uses-permission android:name="android.permission.RESTART_PACKAGES" />
<uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES" />