
我用 HarmonyOS 6.1实况窗Live View,重做了一次秒杀时钟
一、先聊聊《完美桌面时钟》这个 App:它其实一开始并不复杂
一开始的想法其实挺简单的:
👉 就是想让手机,变成一个“好看的桌面时钟”
平时放在办公桌上、床头,用来看看时间,顺便让界面更有一点氛围感。
后来慢慢做着做着,就开始“加料”了:
- 想要更多表盘(数字的、模拟的)
- 想要自定义背景(渐变、动态、甚至自己上传)
- 想要点氛围(白噪音搞起来)
- 想顺手做个番茄钟(提高点效率)
再后来就变成现在这样:
一个不只是“看时间”,而是“帮你用时间”的 App

二、为什么要做秒杀:一个很真实的痛点
这个功能其实不是我拍脑袋想的,是我自己踩过坑。
比如:
- 抢演唱会票
- 抢限量商品
- 电商大促秒杀
你会发现一件事:
👉 你会不停切 App 看时间
有时候甚至是:
- 时钟 App
- 秒杀 App
- 再切回来
- 再确认一遍
来回切,整个人是有点焦虑的。
那时候我就在想:
有没有一种方式,“别让我一直盯着时间”,而是它自己就出现在我面前?
三、这就是为什么我选了 HarmonyOS 的“实况窗”
HarmonyOS 6.1 里的“实况窗(Live View)”,一开始我理解它只是:
👉 “一个高级一点的通知”
但真正用下来之后发现,它更像是:
一个一直存在于系统里的“实时窗口”
它能做到:
- 不用打开 App
- 锁屏直接看到
- 状态栏随时可见
- 并且会持续更新
这些能力叠在一起之后,我基本确定了一件事:
✔ 秒杀计时这种“持续变化 + 高时效”的场景,天生就适合用实况窗来做
四、核心改造:把秒杀时钟“搬进系统”(不只是显示,而是重构体验)
一开始我做这个功能的时候,其实只是想:
👉 “在锁屏上显示一个倒计时”
但真正做完之后,我才意识到:
实况窗不是一个简单的展示组件,而是一个“系统级体验容器”
它改变的不是“你怎么看时间”,而是:
时间出现的方式
4.1 实况窗的本质(我自己的理解)
官方定义是:
👉 用来展示“持续变化、强时效”的信息
比如:
- 倒计时
- 外卖进度
- 出行状态
这些信息有一个共同点:
它们不是“看一眼就结束”,而是一个持续发生的过程
而秒杀计时,刚好完全符合这个模型。
4.2 三种形态,本质是“三层信息密度”
实况窗表面上是三种 UI:
- 胶囊态
- 卡片态
- 锁屏沉浸态
但在设计时,我把它理解成:
三种不同的信息密度层级
🟡 胶囊态:只给你最关键的一眼
- 显示剩余时间
- 每秒变化
- 常驻状态栏

状态栏胶囊倒计时
👉 用户行为:扫一眼
👉 设计原则:越简单越好
🟢 卡片态:信息 + 操作
点击胶囊展开:
- 剩余时间
- 进度条
- 控制按钮(暂停 / 结束)

实况窗卡片展开
👉 核心目标:少走一步,不用打开 App
🔵 锁屏沉浸态:真正的体验分水岭
这个是我这次做完之后,感触最深的一个点。
相比普通卡片:
- 展示面积更大
- 视觉优先级更高
- 更接近系统界面本身

锁屏沉浸态倒计时
我在这里做了几个比较关键的调整:
- 时间数字优先级最高(尽量大)
- 尽量减少干扰元素
- 让时间变化更“有节奏感”
最终带来的变化是:
用户不再只是“看时间”,而是在“感受时间在流动”
4.3 为什么实况窗特别适合秒杀
| 特性 | 秒杀需求 |
|---|---|
| 持续变化 | ✔ 倒计时 |
| 高时效 | ✔ 秒级精度 |
| 不可错过 | ✔ 强需求 |
| 低打扰 | ✔ 不适合通知 |
👉 基本可以说是完全匹配。
五、技术实现
5.1 实况窗核心其实是“生命周期”
它不是一个 UI,而是一个完整过程:
- 创建(开始计时)
- 更新(时间变化)
- 销毁(结束计时)
5.2 更新机制:为什么能做到实时
我的实现思路:
- 本地时间作为基准
- 状态驱动 UI 更新
- 控制刷新频率
👉 目标就是两个字:
稳定 + 准确
5.3 沉浸态实现的关键点(容易被忽略)
沉浸态的本质是:
你的 UI 开始“占用系统空间”
所以需要注意:
- 安全区域处理
- 布局延伸
- 不遮挡系统信息
这一点处理不好,体验会很奇怪。
5.4 UI设计:一定要克制
这个是我踩坑之后总结出来的:
一开始我做得很复杂:
- 很多按钮
- 很多信息
后来全部删掉。
👉 最终结论:
越关键的场景,越要简单
六、实况窗带来的变化(最真实的部分)
对比之前:
| 方式 | 体验 |
|---|---|
| 打开App查看 | 操作多、容易错过 |
| 通知提醒 | 有打断感 |
| 实况窗 | 持续可见、几乎无打扰 |
最终的变化其实很简单:
你不再需要“去看时间”,时间会一直在你眼前
七、一些经验总结(开发者视角,但基本都是踩坑换来的)
实况窗这个能力,如果只看文档,很容易觉得它就是“一个会自动更新的卡片”。
但真正做下来之后,我的感受更接近:
它是一个由系统托管,但必须被你严格控制的状态展示能力。
✔ 不是你想展示什么,而是系统允许展示什么
一开始我犯的一个错误是:
👉 想把很多信息都放进去
结果就是:信息很全,但完全不好用。
后来我才慢慢意识到:
实况窗不是用来“扩展页面”的,而是用来“筛选信息”的。
尤其是在锁屏沉浸态:
用户其实只会关注一件事:
👉 时间还剩多少
所以最后我做了一个很“狠”的取舍:
- 只保留时间
- 其他信息全部降级甚至删除
✔ 生命周期必须和业务状态完全一致
这个点真的踩过坑才会记住。
典型问题:
- 倒计时结束了,但实况窗还在
- App退出了,但状态没清
- 多个实况窗叠加
这些问题本质只有一个:
状态不同步
后来我做了一个强约束:
- 开始计时 → 创建
- 计时中 → 更新
- 结束 → 必须销毁
- 异常 → 强制兜底
👉 实况窗不是“能显示就行”,而是:
必须在正确的时间,以正确的状态存在。
✔ 更新不是越频繁越好,而是越“稳定”越好
一开始我做的是:
👉 每秒刷新
但实际体验并没有更好,反而更“乱”。
后来我改成:
- 用本地时间计算差值
- 状态变化才触发更新
- 控制刷新节奏
👉 一个很重要的体感是:
用户不需要看到“每一秒”,
只需要感知时间在变化
✔ 三种形态,本质是用户注意力的变化
实况窗的三种形态:
- 胶囊态
- 卡片态
- 沉浸态
一开始我当成三套 UI 来做,后来发现不对。
更合理的理解是:
同一份信息,在不同注意力状态下的表达方式
- 胶囊态 → 扫一眼
- 卡片态 → 主动查看
- 沉浸态 → 停留感知
👉 设计的关键不是做三套界面,而是:
在不同场景下,让信息“刚刚好”地出现。
✔ 沉浸态的关键不是“更大”,而是“更干净”
沉浸态最容易做错的一点是:
👉 面积大了,就想多放内容
但实际正确方向是:
面积越大,越要克制
我最后的做法是:
- 放大时间
- 去掉装饰
- 降低干扰
反而更有“沉浸感”。
✔ 最后一个很重要的认知
实况窗不是用来替代 App 的。
它更适合:
- 持续变化的信息
- 强时效场景
- 用户不希望被打断的场景
如果用一句话总结我现在的理解:
它不是让你多一个展示入口,而是让“最重要的信息,一直存在”。
八、一些更偏个人的总结(写完这个功能之后的真实感受)
这次把秒杀时钟用实况窗重做了一遍之后,我最大的变化,其实不是“功能变多了”。
而是对一件事有了新的理解:
App 不一定非要等用户打开,才开始提供价值。
以前做功能的思路是:
- 用户打开 App
- 找到功能
- 获取信息
现在反过来了:
- 信息直接出现在系统里
- 用户不需要额外操作
- 甚至不用“想起来去看”
这种感觉其实挺微妙的。
你会发现,用户不再是在“使用功能”,而是在一个更自然的状态下“接收信息”。
另外一个比较直观的变化是:
以前做 UI,总想着“怎么把界面做得更丰富”。
现在反而会多想一步:
用户在这个时刻,真的需要看到这么多东西吗?
很多时候答案是:不需要。
最后,如果一定要用一句比较朴素的话来总结这次实践:
好的体验,不是让用户多做一步,而是少想一步。
更多HarmonyOS相关资讯活动,欢迎关注中小企业IT网-HarmonyOS开发者社区【中小企业IT网】数字化转型 | 中小企业IT采购首选平台