【问题标题】:Does Android ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS allow background service?Android ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS 是否允许后台服务?
【发布时间】:2020-05-14 06:52:58
【问题描述】:

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

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

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

恕我直言,电池优化允许将应用排除在打盹模式和应用待机模式之外,而不是后台服务限制。

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

谢谢。

【问题讨论】:

    标签: android android-service


    【解决方案1】:

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

    电池优化肯定会在一定程度上帮助运行警报接收器和后台服务。但根据我使用一加 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 play 政策,

    Google Play 政策禁止应用申请直接豁免 来自 Android 6.0+ 中的电源管理功能(打盹和应用待机) 除非应用的核心功能受到不利影响

    【讨论】:

    • 谢谢,Google Play 政策无关紧要,因为我的应用只是为了测试电池优化白名单。因此,白名单中的应用程序可以运行后台服务,这是预期的行为,尽管将应用程序添加到白名单中取决于操作系统。对吗?
    • 完全正确。当应用在白名单中时,它可以不受限制地启动服务,并且允许其后台服务运行。更多你会发现它还有这个文件:developer.android.com/about/versions/oreo/background
    猜你喜欢
    • 1970-01-01
    • 2019-01-31
    • 2022-01-24
    • 1970-01-01
    • 1970-01-01
    • 2018-06-01
    • 1970-01-01
    • 2014-03-02
    • 1970-01-01
    相关资源
    最近更新 更多