0

我正在编写一个 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() 并关闭后台进程的按钮时,一些应用程序(电子邮件、谷歌地图)会立即开始重新启动过程。如何更改我的代码以使这些应用程序在重新打开之前保持关闭状态?此外,这种方法在节省电力方面是否明智,还是我以错误的方式攻击它?

4

2 回答 2

1

我认为这不是处理问题的正确方法。这些应用程序具有广播接收器,这意味着它们会在发生任何事情时重新启动服务(即插入交流电/打开 WiFi),我认为没有 root 用户没有办法阻止它,并且实际上禁用了广播接收器。您可以制作每 5 分钟杀死一次的东西,但这对电池不是很友好。

于 2013-07-11T19:58:24.883 回答
0

我不认为每次都强制关闭地图应用程序是个好主意,我认为这是Android中的一个错误..

答案之一如下:“实际上,当您在手机的 Gmail 应用程序的“帐户设置”下的“常规同步设置”中选中“后台数据”时,地图总是会运行。不幸的是,为了您的手机服务,同步后台数据是必要的提供呼叫和发短信的提供商(尽管如果没有选中此项目,互联网访问仍然可以工作)。取消选中此框将从正在运行的应用程序(以及任何其他需要它的应用程序)中删除地图,从而改善电池使用时间并加快手机速度。但是,如果你想打电话、发短信或使用需要后台同步的应用程序,你必须勾选这个。如果你只想浏览网络...取消勾选它。目前没有其他合法的解决方案。希望这很有帮助...

"

看到这个问题(https://code.google.com/p/android/issues/detail?id=10251

于 2013-07-11T20:01:12.430 回答