第 19 课2026.09.28
可重复验证第 18 课的 SavedStateHandle 恢复,不把用户主动强停误当成系统回收。
第 19 课:用 am kill 验证系统进程恢复
- 日期:2026-09-28
- 课程序号:第 19 课
- 知识点:后台
am kill与force-stop的测试语义
用途或适用场景
可重复验证第 18 课的 SavedStateHandle 恢复,不把用户主动强停误当成系统回收。
核心概念
系统保存的状态依附于任务栈;am kill 只终止可安全终止的后台进程,force-stop 会结束应用相关状态,不适合检验这一恢复路径。
最小代码或操作示例
text
1. 用第 18 课页面把 running 切换为 true,按 Home 让 Activity 进入后台。
2. 将示例包名换成实际 applicationId 后运行:
adb shell am kill com.example.lesson
3. 从最近任务返回该应用,查看按钮是否仍显示“停止”。3~5 分钟练习
重复一次测试,但先把 running 切换为 false,对照恢复后的按钮文字。
参考答案
在进程确被终止、任务栈仍被系统保留且保存流程完成时,恢复后应显示“开始”;若进程未被终止,不能把结果当成进程恢复证据。不要用 force-stop 替代 am kill。
与上一课的联系
沿用第 18 课的 LessonViewModel、running、SavedStateHandle 和按钮映射;本课只增加可控的后台进程终止验证步骤;下一课可观察保存状态只适合轻量数据的边界。
时效校验
时效校验:2026-09-28(已核对 Android Developers 当前 Saved State module 与 adb am kill/force-stop 文档;getMutableStateFlow 最低 Lifecycle 2.9.0;未实际连接设备)。