【共创稿事节】HarmonyOS 7 应用接续实战:continuable + onContinue 跨设备无缝流转,手机编辑平板接着搞
本文聚焦 HarmonyOS 7(API 26)的「应用接续」能力,把"手机编辑到一半、平板接着搞"的完整链路拆清楚。文中 API 名与接口来自官方文档,运行表现以真机实测为准。
写笔记写到一半要出门,手机往平板一划,页面栈、滚动位置、输入框内容原样接着来——不是"云端保存再重新打开",而是真正的无缝接续。HarmonyOS 7 把"应用接续"列为无缝流转跨设备任务的核心能力,底层是升级到 软总线 2.0(官方披露延迟降到 8ms、支持最多 16 台设备协同、连接建立缩到 200ms)。V哥 把接入链路拆成六块讲,照着做就能让应用"不站桩"。
一、应用接续到底是什么
传统跨设备靠云同步:本地存、传服务器、对端再拉。链路长、有延迟、还依赖网络。应用接续(Continuation)走的是另一条路:把应用的运行状态(页面栈 + 控件状态 + 你的业务数据)整体迁移到目标设备。用户在手机上刷到一半的文章,点一下平板 Dock 栏的应用图标,平板从断点继续——视频续播、笔记续写、阅读进度同步,都是这套机制。它和云同步的区别,一句话:云同步是"数据副本",接续是"任务上下文的原样转移"。

二、HarmonyOS 7 的接续底座
接续跑在分布式软总线之上,开发者不用碰底层传输,只需要做三件事:启用能力、保存数据、恢复数据。HarmonyOS 7 的软总线 2.0 把延迟压到 8ms、连接建立 200ms、最多 16 台设备协同,意味着接续的"搬运动作"本身几乎无感。但能迁多顺,最终取决于你在 onContinue 里塞了什么、在 onCreate 里怎么还原。
三、三步接入(含真实 API)
3.1 声明可接续
在 module.json5 的 ability 里把 continuable 设为 true——这是系统触发接续流程的前提,不配就"不让迁":
{
"module": {
"abilities": [
{ "name": "EntryAbility", "continuable": true, "launchType": "singleton" }
]
}
}
3.2 按需开接续 + 源端保存
不是所有页面都该接续。在需要接续的页面调 setMissionContinueState(ACTIVE) 动态打开,源端 onContinue(wantParam) 里把迁移数据以键值对存进去,并返回 AGREE:
import { UIAbility, AbilityConstant } from '@kit.AbilityKit';
// 页面可见时启用接续
this.context.setMissionContinueState(AbilityConstant.ContinueState.ACTIVE, () => {});
// 源端:保存迁移数据,返回 AGREE 同意流转
onContinue(wantParam: Record<string, Object>): AbilityConstant.OnContinueResult {
const targetVersion = wantParam.version as number; // 对端应用版本号
if (targetVersion < 1000) {
return AbilityConstant.OnContinueResult.MISMATCH; // 版本不兼容,终止协商
}
wantParam['data'] = AppStorage.get('draft') ?? ''; // 你的业务数据
return AbilityConstant.OnContinueResult.AGREE;
}
3.3 对端恢复
目标端在 onCreate(冷启动 / 多实例热启动)或 onNewWant(单实例热启动)里,用 LaunchReason.CONTINUATION 判断是不是接续启动,再从 want.parameters 取数据还原 UI:
onCreate(want: Want, _param: AbilityConstant.LaunchParam): void {
if (want.parameters?.launchReason === AbilityConstant.LaunchReason.CONTINUATION) {
const data = want.parameters['data'] as string; // 还原输入框 / 滚动位置 / 路由
}
}

四、工程纪律与坑
V哥 列几条,少踩:
- 数据量卡 100KB:
wantParam传的接续数据建议控制在 100KB 以下;超过就走分布式数据对象 / 分布式文件系统,别硬塞。 - 版本兼容必须校验:
onContinue入参wantParam.version是对端版本号,不匹配就返回MISMATCH并提示用户升级,否则迁过去界面错乱。 - 敏感数据加密:跨设备传输的隐私内容走
@ohos.security.huks加密再传,别裸奔。 - 失败要回退:目标设备离线或传输中断,提示用户并保留源端本地状态,别把数据弄丢。
- 恢复时机区分冷/热启:单实例用
onNewWant、冷启用onCreate,两段都要写恢复逻辑,否则某些启动路径接续失效。
五、和前面篇章的关系
接续依赖分布式软总线传输,和第 37 篇的网络加速是"管道与搬运"的关系——软总线把状态搬过去,网络优化保证搬得稳;和第 35 篇多设备 UX 也相关:接续到平板的页面,目标设备布局必须靠断点自适应接住,否则手机竖屏的布局在平板上照样错位。三者共同支撑"全场景无缝"这个 HarmonyOS 7 的主线。
六、什么时候接
阅读、笔记、视频续播、文档编辑这类有明确"进度"概念的应用,V哥 建议把应用接续列为首屏体验必做;导航类可结合 CarKit 把导航流转到车机。收益很实:学习进度同步延迟 < 200ms、视频续播"点图标即接着放"——这些都是用户能直接感知的"鸿蒙味"体验。
参考与出处
以下为本文涉及的官方文档与能力说明,建议以官方最新版本为准。
- 应用接续概述(continuable / onContinue / onCreate / onNewWant / 版本兼容):https://developer.huawei.com/consumer/cn/doc/best-practices/bpta-continue-cast
- 多设备流转(continuable 配置 / 分布式权限 / 导航流转车机):https://developer.huawei.com/consumer/cn/blog/topic/03209597056148208
- UIAbility 组件启动模式(launchType / 单实例与多实例热启动):https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/
- HarmonyOS 7 新能力一览(应用接续 · 无缝流转跨设备任务):https://developer.huawei.com/consumer/cn/features/
最后一句:应用接续的本质不是"再传一份数据",而是把任务的上下文原样搬过去——HarmonyOS 7 用软总线 2.0 把搬运做到 8ms 无感,剩下的"搬什么、怎么还原",才是开发者真正要打磨的手艺。
更多推荐


所有评论(0)