首页 > 解决方案 > 如何使用代码从电池优化中排除 Android 应用

问题描述

我是 Android 新手,现在我正在开发一个基于 GPS 的项目。我从互联网(traccar)获得源代码。我的要求是应用程序应该每 1 公里或每 1 小时更新一次位置。但问题是应用程序在一段时间(10 - 20 分钟)后无法在后台运行。有什么解决方案吗?

当应用程序启动时,我应该做什么(在代码中)将该应用程序从电池优化中排除?可能吗 ?

标签: javaandroidandroid-studio

解决方案


我认为你有两个不同的问题:

1)如果您想将您的应用程序保持在后台,您应该使用前台服务。这样,系统不会认为您的应用程序处于后台,并且其进程被杀死的机会大大降低。不利的一面是,只要您的服务在前台,您就需要显示永久通知。

2)您不能自行将您的应用排除在电池优化之外,但您可以提示用户设置将您的应用列入白名单。为此,您可以参考官方文档,您需要将Manifest.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS权限添加到清单,然后使用操作ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS启动意图。然后,用户将能够将您的应用列入白名单,只有她/他可以这样做,因为否则每个应用都会将自己列入白名单,并且电池优化的目的将被违背。


推荐阅读