Android ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS 是否允许后台服务?

Does Android ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS allow background service?

我一直在用后台服务测试电池优化白名单。

当应用程序处于后台时,几分钟后(在我的设备中大约 1m)后台服务被破坏。

但电池优化白名单应用启动的服务,即使不是前台服务,似乎也不会被破坏。

恕我直言,电池优化允许应用程序从休眠模式和应用程序待机模式中排除,而不是后台服务限制。

电池优化白名单是否也允许后台服务?

谢谢。

在小米、一加等的定制OS中,这种行为高度依赖于他们的OS定制。

电池优化肯定会在一定程度上帮助 运行 警报接收器和后台服务。但根据我使用一加 5T 设备的经验,用户必须从设置中手动更改电池优化。如果我们通过使用以下代码来实现它,即使在弹出窗口中用户允许 运行 后台服务之后,这也不会产生任何变化。用户必须在设置中将特定应用程序标记为电池未优化。

                Intent intent = new Intent();
                intent.setAction(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS);
                intent.setData(Uri.parse("package:" + this.getPackageName()));
                this.startActivityForResult(intent, IGNORE_BATTERY_OPTIMIZATIONS_REQUEST); 

在此只想让您知道,开发者网站上提到的几个用例只能让您的应用列入白名单:

https://developer.android.com/training/monitoring-device-state/doze-standby#whitelisting-cases

另外,根据 google 播放政策,

Google Play policies prohibit apps from requesting direct exemption from Power Management features in Android 6.0+ (Doze and App Standby) unless the core function of the app is adversely affected