Android O设置:启用应用程序后台限制

9
根据文档所述:
注意:默认情况下,这些限制仅适用于目标为Android 8.0(API级别26)或更高版本的应用。但是,即使应用程序的目标API级别低于26,用户也可以从设置屏幕启用大多数这些限制。
我正在针对低于API 26的应用进行开发,但是我找不到在官方Android模拟器中启用限制的设置。
这个设置在哪里?

在 Android API 26 以下的版本中没有任何限制。 - PEHLAJ
模拟器中安装了哪个Android版本? - PEHLAJ
可能它们指的是在开发人员选项 -> 后台进程 -> 无后台进程而不是标准限制。 - matrix
1
它应该出现在应用程序的设置页面上,适用于那些倾向于消耗大量电池的应用程序。请参阅我的五月博客文章以了解更多相关背景信息。然而,我尚未能够在生产中重现此问题。 - CommonsWare
@CommonsWare 感谢您的澄清。因此,开发人员不应考虑该选项。如果您希望应用程序在 O 上运行,请遵守后台限制!! - Arnav M.
显示剩余7条评论
2个回答

6
启用后台限制的设置在应用信息->电池屏幕中可用。 尚未在模拟器中重现。 如果应用程序(目标API低于26)最初没有进行一些后台工作,则该选项不可用。
所以我能够通过以下方式生成它:
1.将应用程序定位到API 25
2.创建一个长时间运行的服务(约5分钟)
3.从MainActivity的onCreate中启动服务
4.将应用程序发送到后台(按返回键),并将设备放在电池上(未连接电源)
几分钟内,将会有一个选项可用于启用限制。

3
您可以使用adb来启用/禁用后台限制。
Android 7.0(API级别24)引入了一些额外的Android Debug Bridge(ADB)命令,您可以使用这些命令来测试在这些后台进程被禁用的情况下应用程序的行为:
要模拟隐式广播和后台服务不可用的情况,请输入以下命令: $ adb shell cmd appops set RUN_IN_BACKGROUND ignore 要重新启用隐式广播和后台服务,请输入以下命令: $ adb shell cmd appops set RUN_IN_BACKGROUND allow
来源:https://developer.android.com/topic/performance/background-optimization#further-optimization 而且您还可以设置您的应用程序在后台运行: adb shell am make-uid-idle 来源:Android Oreo Background Execution Limits

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接