在省电模式Android上运行后台服务

我有一个服务,用于发送在后台运行的http请求,并在“正常模式”下正常工作。 问题是当我将手机置于“省电模式”时,该服务无法正常工作。 但是,像Whatsapp这样的应用仍然有效。 你知道发生了什么吗?

像Whatsapp这样的移动应用程序必须请求许可才能免除打盹/电池节省和应用程序待机模式。

可以通过在设置>电池>电池优化中配置白名单来手动配置。

或者从API 23开始,您可以使用权限模型来请求用户将它们列入白名单(请参阅此内容 )。 从API您还可以通过调用isIgnoringBatteryOptimizations()来检查您的应用当前是否在白名单上

但是,您需要满足某些标准才能将自己列入白名单。 否则,您在Google Play商店中维护应用时会遇到问题。

但主要是Whatsapp等信使应用程序是通过高优先级推送通知触发的,因此尽管没有运行后台进程,但它们更有可能处于活动状态。

自Marshmallow以来,后台服务正在开发中,除了Oreo以外的其他任何东西都不能用于前台使用。

打盹模式将在活动时禁止任何操作,手机将每隔X小时从少数女士打瞌睡,一些库将允许您在此期间进行一些操作。

如果您想在打瞌睡和电池保护期间进行一些后台操作,您可能需要查看JobScheduler的操作,该操作将在手机未打盹时每15分钟或更长时间执行一次,如果您需要更频繁的操作,我建议你看一下JobDispatcher 。 两者都将在退出打盹模式时执行您的任务