我正在开发一个简单的任务管理器,它允许用户终止正在运行的进程并终止应用程序。我正在使用以下方法获取正在运行的进程列表:
List<RunningAppProcessInfo> procInfo = activityManager.getRunningAppProcesses();
只需单击一下按钮,我就想以任何方式杀死所有不重要或不重要的正在运行的进程。为此,我使用:
ArrayList<String> packages = new ArrayList<String>();
for (int i = 0; i < procInfo.size(); i++) {
String process = procInfo.get(i).processName;
if (!packages.contains(process)) {
packages.add(process);
}
}
这将为我提供所有正在运行的进程的名称,现在我可能应该使用它们的重要性代码以某种方式过滤它们:
int importance = procInfo.get(i).importance
但我不确定如何。我应该继续运行什么,什么可以安全杀死?我在用着
applicationManager.killBackgroundProcesses(process);
杀死我的进程。我的下一个问题是,这是杀死进程的最佳方法吗?因为当我这样做并且再次打开所有进程都被杀死的应用程序之一时,我发现自己不在它的主活动中,而是在我离开它的地方,所以我假设应用程序从未终止,即使它的所有进程都被杀死了。此外,我发现该应用程序处于相当荒凉的状态(缺少 ImageViews 和 Buttons,TextViews 不在它们应该在的位置)。请注意,此应用程序也是我自己编写的,通常可以正常工作。
我的最后一个问题是,当这个杀死进程的问题得到解决时,我还想终止选定的应用程序。如何获取正在运行的应用程序列表?我正在考虑获取正在运行的进程列表,而不是从该列表中获取应用程序。之后,通过杀死所有进程来终止选定的应用程序。但我不认为这是最好的方法,因为当我杀死所有进程时它显然不起作用。
感谢您的回复!