pengchujin:Aerial 任务清理与进程复活存在时序竞态
在 Aerial #722 的复测中,pengchujin 记录同型号 Android 14 上清理任务后进程可能要 12–30 秒才复活:通知监听约 0.86 秒重绑拉起 Aerial,却可能被同一次 removeTask/forceStopPackage 在约 0.95 秒再次杀掉,之后依赖 10 秒或约 27 秒系统重试。任务中心无锁且 Aerial 无法拦截小米主页键,建议清理后台时不要选 Aerial,或清理后按主页键等待其恢复。
作者原文@pengchujin补充一下 2026-11-01 在同型号(MiTV-MFTR0,Android 14)上用 1.76 重新查的结果。
清空后多久回来不固定,12 秒到 30 秒都有。 两次实测:
| 距强停 | 发生了什么 |
|---|---|
| 0 | 任务中心对 Aerial 执行removeTask+forceStopPackage|
| +0.86s | 系统重绑通知监听,Aerial 进程被拉起 |
| +0.95s | 同一次清理的「remove task」把这个刚启动的进程杀掉(am_kill ... remove task),Aerial 的代码还没来得及运行 |
| +10s | 通知监听固定 10 秒后再重绑,Aerial 复活(另一次这一步没发生,等到约 27 秒后同步框架才拉起) |
| 再 +1.5s | 守护把 Aerial 拉到前台 |之前 1.60 测到的 4 秒,应该是那次复活刚好晚于清理,没被杀。两件事只差约 0.1 秒,碰不碰上看运气,后面的 10 秒和 30 秒都是系统固定的重试时间。
App 这边避不开:
- 任务中心的清除对每一项都无条件强停,没有锁定;隐藏名单是写死的 5 个小米包。
- Aerial 已经声明了不进最近任务,但在 Aerial 里长按主页键时它是最上面的任务,Android 照样列出。让系统真正隐藏,任务一离开前台就会被清掉,回桌面要重建界面(1.12 修过)。
- 主页键(包括长按)在小米上不经过守护的按键过滤,所以也没法拦下长按、换成 Aerial 自己的清理。
所以目前的建议是:清理后台时别选 Aerial 那一项,或者清完按一下主页键等 Aerial 自己回来。如果以后找到能让复活躲开这次清理的办法,会在这里更新。