RUN_IN_BACKGROUND 后台运行限制 App Ops 怎么管耗电
这个权限是什么
App Ops 中显示的"在后台运行"对应的是 Android 系统的 RUN_IN_BACKGROUND appop:
- Android 7 引入,target API ≥ 26 的应用受影响
- 决定应用切到后台后能否继续执行操作
- 系统默认允许所有应用后台运行,这就是手机后台耗电的主要原因之一
在 App Ops 里怎么控制
在应用详情页找到"在后台运行"权限项,可以对其设置四种状态:
- 忽略:应用请求后台运行时,系统返回不允许。应用不会收到明确错误,但后台代码无法继续执行
- 仅在使用期间允许:前台时正常,切到后台后自动禁止
- 拒绝(Force Stop):强制停止,应用可能被系统杀掉进程
- 允许:不干预,应用可以正常后台运行
与系统后台限制的区别
Android 系统本身也有后台限制机制:
- App Standby Buckets(Android 9+):系统自动把应用分成活跃/工作集/常用/罕见四个桶,罕见应用的后台行为被限制
- 后台启动限制(Android 10+):无法从后台启动 Activity
- Battery Saver:省电模式下全局限制后台
但这些都是系统一刀切的策略,用户无法精确到单个应用的具体后台行为。App Ops 的 RUN_IN_BACKGROUND 让你可以对每个应用独立控制。
典型使用场景
场景一:阻止社交 App 后台联网
微信、QQ、社交 App 切到后台后持续联网、接收推送、拉取新消息——如果不需要后台消息通知,可以把它们的"在后台运行"设为忽略。
注意:忽略后台运行不会阻止推送通道(推送走的是 Google FCM 或厂商推送服务),只是应用自己的后台代码无法执行。
场景二:防止后台上传
某些应用会在后台偷偷上传用户数据或遥测日志。忽略 RUN_IN_BACKGROUND 后应用无法执行后台代码,上传行为被阻断。
场景三:省电
对不常用的应用、游戏、工具类应用,统一设为忽略后台运行,能显著降低手机后台耗电。
注意事项
- 设为忽略后,应用的后台功能全部失效:后台下载、后台音乐播放、后台定时任务等都无法工作
- 某些应用会检测到后台运行被禁止后主动弹出提示
- Android 9+ 还有一个单独的
RUN_ANY_IN_BACKGROUNDappop,见 任意后台运行限制 - 厂商 ROM(MIUI、ColorOS、OneUI 等)有自己的后台管理,可能与 App Ops 设置叠加生效或冲突
App Ops 的特殊处理
App Ops 在 Android 9 新增加的 RUN_ANY_IN_BACKGROUND 面前有过迭代:
- v2.6.0 之前:把
RUN_IN_BACKGROUND和RUN_ANY_IN_BACKGROUND合并成一个选项,同时修改两个 - v2.6.0 起:可以独立选择限制哪一个,因为同时限制两个可能导致限制过于严格
与电池优化的配合
App Ops 的后台运行限制与系统的电池优化(Battery Optimization)是两层独立的机制,可以叠加使用:
- App Ops 后台运行限制:从 appops 层面直接禁止后台行为
- 电池优化:限制后台耗电、唤醒频率等
建议先用 App Ops 的忽略模式禁止不需要后台的应用,再用系统电池优化覆盖全局设置。