9

根据文档-

注意:默认情况下,这些限制仅适用于面向 Android 8.0(API 级别 26)或更高版本的应用。但是,用户可以从“设置”屏幕为任何应用启用大部分这些限制,即使应用的目标 API 级别低于 26。

我的目标是低于 API 26,但我找不到在官方 android 模拟器中启用限制的设置。

此设置在哪里可用?

4

2 回答 2

6

启用背景限制的设置在应用信息->电池屏幕中可用。

还不能在模拟器中重现。

当您最初安装应用程序(目标低于 API 26)时,该选项不可用,直到应用程序执行一些后台工作。

所以我能够通过-

  1. API 25 的目标应用程序
  2. 创建一个长时间运行的服务(大约 5 分钟)
  3. 从 MainActivity 的 onCreate 启动服务
  4. 将应用程序发送到后台(按回)并将设备保持在电池上(未连接电源)

在几分钟内,该选项将可用于启用限制。

于 2017-10-13T06:08:35.883 回答
3

您可以使用 adb 启用/禁用后台限制。

Android 7.0(API 级别 24)引入了一些额外的 Android 调试桥 (ADB) 命令,您可以使用这些命令在禁用这些后台进程的情况下测试应用行为:

  • 要模拟隐式广播和后台服务不可用的情况,请输入以下命令: $ adb shell cmd appops set <package_name> RUN_IN_BACKGROUND ignore
  • 要重新启用隐式广播和后台服务,请输入以下命令: $ adb shell cmd appops set <package_name> RUN_IN_BACKGROUND allow

来源:https ://developer.android.com/topic/performance/background-optimization#further-optimization

您还可以将您的应用设置为在后台运行:

adb shell am make-uid-idle <package>

来源:Android Oreo 后台执行限制

于 2018-10-08T17:31:08.137 回答