开机自启靠什么 BOOT_COMPLETED 广播 receiver 监听
BOOT_COMPLETED:应用开机自启的必经之路
Android 系统开机完成后,会发送一条 android.intent.action.BOOT_COMPLETED 系统广播。所有注册了监听这个 action 的 receiver 都会被触发——应用在 receiver 的回调里启动自己的 service,于是应用就"自启"了。
这条广播是应用开机自启的核心入口,Bloker 关 receiver 断自启的关键就是找监听 BOOT_COMPLETED 的 receiver。
怎么在 Bloker 里找 BOOT_COMPLETED receiver
进应用详情 → receiver tab → 找注释/标签里含 BOOT_COMPLETED 的 receiver。Bloker 会根据 intent-filter 里的 action 自动给 receiver 加标签,你不用自己看 XML 文件。
如果 Bloker 没给自动标记(极少数情况),可以:
- 按名字搜
BOOT或COMPLETED - 或者看 receiver 的 intent-filter(有些应用的 receiver 页面会显示监听了哪些 action)
关掉它就不会开机自启了
关掉监听 BOOT_COMPLETED 的 receiver 后:
- 下次开机时,系统会发送 BOOT_COMPLETED 广播
- 但 Bloker(PM 或 IFW 方式)会拦截掉这个应用的 receiver 接收广播
- receiver 不会被触发,后续的 service 启动也不会发生
- 应用不会再自动启动
验证步骤
- 关掉目标应用的 BOOT_COMPLETED receiver
- 先强制停止这个应用(从最近任务划掉)
- 重启手机
- 开机后等 2 分钟(系统稳定后)
- 看最近任务列表里有没有目标应用的进程
- 看电池使用记录里有没有它在后台运行
- 打开设置 → 应用管理 → 正在运行的服务,确认应用的 service 没在跑
一个应用可能有多个自启入口
有些应用不止一个 receiver 监听 BOOT_COMPLETED——可能:
- 主应用一个 receiver
- SDK(比如推送 SDK)又注册了一个 receiver
- 厂商通道的 receiver 也监听 BOOT_COMPLETED
所以关掉一个后最好重启验证一次,如果还是自启了,说明还有其他 receiver 没关到。
厂商系统的特殊限制
某些国产 ROM(小米、MIUI、ColorOS、EMUI、OneUI)有"自启动管理"的内置设置——它们在系统层面也会拦截部分应用的开机自启。Bloker 的 receiver 禁用和系统设置的自启管理可以叠加:
- 系统自启管理关掉 → Bloker 再关 receiver → 双重保险
- 系统自启管理没开 → 只靠 Bloker 的 receiver 禁用也够用
建议两边都开上。