appops 中文文档 下载 App

RUN_ANY_IN_BACKGROUND Android 9 新增的后台限制

两个后台权限的区别

Android 系统有两个相关但不同的后台运行 appop:

appop引入版本作用控制效果
RUN_IN_BACKGROUNDAndroid 7应用进程在后台能否继续执行代码禁止后应用后台代码无法运行
RUN_ANY_IN_BACKGROUNDAndroid 9应用能否在后台启动任何类型的服务禁止后应用无法在后台启动任何 Service

RUN_ANY_IN_BACKGROUND 是 Android 9 电源管理增强的一部分,比 RUN_IN_BACKGROUND 更严格——禁止的是"在后台启动服务"这个行为本身。

App Ops 的迭代历史

App Ops 对这两个权限的处理方式经历过变化:

在 App Ops 中查看

进入应用详情页的权限列表,在 Android 9+ 系统上你会看到:

两者都可以用四种状态独立设置。

怎么设置更合理

没有通用的正确答案,取决于你的使用习惯和对该应用的信任程度。以下是一些建议:

方案一:两个都设为忽略(最激进)

效果最严格,应用基本失去后台能力。适合:

方案二:只忽略 RUN_ANY_IN_BACKGROUND(推荐平衡)

RUN_ANY_IN_BACKGROUND 被禁止后,应用不能在后台主动启动新服务,但已有的后台服务还能继续运行。这比两个都忽略温和一些。适合:

方案三:只忽略 RUN_IN_BACKGROUND(温和)

限制后台代码执行但不阻止后台服务启动。某些应用需要后台服务(如音乐播放)但不需要后台代码。

方案四:两个都允许(默认)

不干预,让应用正常后台运行。适合:

系统限制与厂商差异

注意事项