Android应用程序可以杀死后台进程以节省电量

时间:2013-07-11 19:54:41

标签: android process background-process kill kill-process

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

2 个答案:

答案 0 :(得分:1)

我不认为这是解决问题的正确方法。 这些应用程序有广播接收器,这意味着他们会在发生某些事情时重新启动服务(即AC插入/ WiFi打开),我不认为有一种方法可以在没有root的情况下阻止它,并实际上禁用广播接收器。 你可以制作每5分钟杀死一次的东西,但这不会对电池非常友好。

答案 1 :(得分:0)

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

其中一个答案如下: “ 实际上,当您在手机的Gmail应用中的“帐户设置”下的“常规同步设置”中勾选“背景数据”时,地图始终会运行。不幸的是,同步背景数据是必要的,以便您的电话服务提供商提供呼叫和发短信(尽管互联网访问仍然可以在没有此项目的情况下进行检查)。取消选中此框将从正在运行的应用程序(以及任何其他需要它的应用程序)中删除地图,从而缩短电池续航时间并加快手机速度。但是,如果您想要拨打电话,发短信或使用需要Backround同步的应用,您必须对此进行ckeckmarked。如果您只想浏览网络...取消选中它。目前没有其他合法的解决方案可以解决这个问题。希望这有用......

请参阅此问题(https://code.google.com/p/android/issues/detail?id=10251