繁体   English   中英

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

[英]Android app that kills background processes to save power

我正在编写Andoid应用程序,以便当电池寿命低于特定水平时,出现一个对话框,其中包含有关如何节省电池的选项。 这些选项之一是使用ActivityManager.killBackgroundProcesses()关闭所有后台应用程序/服务(进程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()的按钮并关闭后台进程时,某些应用程序(Email,Google Maps)立即开始重新启动过程。 如何更改我的代码,以便这些应用程序保持关闭状态直到重新打开? 此外,这种方法在节省电量方面是否明智?还是我以错误的方式进行攻击?

我认为这不是解决问题的正确方法。 这些应用程序具有广播接收器,这意味着它们会在发生任何情况(例如,插入AC /打开WiFi)时重新启动服务,并且我认为没有办法在没有root的情况下停止该服务,并实际上禁用广播接收器。 您可以每隔5分钟就做出一次杀死它的操作,但这并不是很省电。

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

答案之一如下:“实际上,当您的手机Gmail应用程序的“帐户设置”下的“常规同步设置”中选中“背景数据”时,地图始终会运行。不幸的是,为了进行电话服务,同步背景数据是必要的提供程序以提供呼叫和发短信功能(尽管无需选中此项目,仍可以访问互联网)。取消选中此框将会从“正在运行的”应用程序(以及需要它的任何其他应用程序)中删除“地图”,从而延长了电池使用时间并加快了手机速度。您想拨打电话,发短信或使用需要Backround同步的应用,则必须选中此标记。如果您要做的就是浏览网络...取消选中它,则目前没有其他合法的解决方案。这很有帮助...

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM