K1.08.2UI state restoration设计研究

返回时需恢复到离开时的状态

别名: 状态恢复 · state restoration · placekeeping

概念解释

人从其他应用回到本应用时,界面应落在离开时的那一屏:导航栈、滚动位置、展开的分组、选中的标签、焦点所在的控件。进程可能已经死过一轮,但人的任务没断,他们用多任务卡片上的画面当书签。冷启动到首页等于把书签撕掉。这条谈的是视图状态——人在哪、看到哪——不是进程为什么会死,也不是输入框里未提交的文字如何单独落盘。

机制

切走时工作记忆里还留着「我在通知页往下翻到了免打扰」这样的位置标记。进程被杀后,若启动路径只认根页面,这枚标记没有落点,人必须重新走一遍到达路径。到达路径越深,重建成本越高:设置里的第三层、长列表中部、带筛选条件的结果页。系统提供状态恢复接口(活动记录、场景状态),但默认只保住任务根;子页、滚动偏移、折叠态要应用自己写进可恢复的包。截图和真界面还会打架:多任务栏仍显示离开时的画面,点进去却是首页,预期被画面抬高、被启动结果打脸,这种落差比「应用被杀」本身更难解释。

怎么研究

用中断—恢复范式:让人在深层界面做到一半,强制切到另一任务,再回来继续。

自变量:离开时的栈深度、有无滚动偏移、恢复后是原屏还是根页、中断时长。 因变量:恢复滞后(重新定位到离开点的时间)、错误路径(走错层、重做筛选)、主观「我丢了位置」报告。

实验室里若允许人立刻回来且进程未死,测到的是任务切换而不是恢复失败。要在进程确实被杀的条件下比「回到原屏」与「回到首页」。滚动位置的像素级恢复在内容已刷新时会指错行,因变量里应分开「页对了但行错了」和「页就错了」。

边界

认证过期、会话被踢下线时,安全上必须先回到登录,不能把深层页当成可恢复状态。内容本身已经不存在(下架的商品、过期的活动页)时,应落到可解释的替代页,而不是空白或崩溃。首次安装没有「离开时的状态」可恢复。桌面窗口被挡住时进程通常仍在,切回不涉及这套冷启动恢复;把移动端的恢复包搬去桌面,会和系统自己的窗口记忆打架。

怎么落地

  • 离开前把导航栈、页内滚动、关键筛选条件写入系统可恢复状态或本地快照,而不是只记「上次打开过这个应用」。
  • 多任务卡片所展示的画面必须和点进去第一帧一致;做不到就不要让卡片显示一个回不去的深层截图。
  • 验证:在设置或内容的第三层停住,滚动离开顶部,用系统工具杀掉进程再从多任务栏点回。第一帧应仍是那一层、滚动大致在原处;若落到根页,记下重建该层所需的点击数,那就是人多付的恢复税。

延伸

  • 同组K1.08.1 应用可能在任意时刻被回收 · K1.08.3 未保存内容必须持久化
  • 相邻K1.01 移动使用情境 · I3.06 状态持久化
  • 站内检索state restoration · placekeeping · resumption lag

同组卡片

快捷操作

分享

分享当前页面

ios_share

https://hci.top/zh/handbook/K1.08.2