我正在编写一个 Andoid 应用程序,以便当电池寿命低于某个水平时,会出现一个对话框,其中包含如何保存电池的选项。其中一个选项是关闭所有后台应用程序/服务(进程)使用ActivityManager.killBackgroundProcesses()
. 代码如下所示:
public void TaskKiller( View view){
List<ApplicationInfo> packages;
PackageManager pm;
pm = getPackageManager();
packages = pm.getInstalledApplications(0);
ActivityManager mActivityManager = (ActivityManager)this.getSystemService(Context.ACTIVITY_SERVICE);
for (ApplicationInfo packageInfo : packages) {
mActivityManager.killBackgroundProcesses(packageInfo.packageName);
}
}
但是,当我单击调用 TaskKiller() 并关闭后台进程的按钮时,一些应用程序(电子邮件、谷歌地图)会立即开始重新启动过程。如何更改我的代码以使这些应用程序在重新打开之前保持关闭状态?此外,这种方法在节省电力方面是否明智,还是我以错误的方式攻击它?