首页 经验

诗词速通,漫游泡泡,词汇宝,新维日语,简易物理,点此下载


应用接续

时间: 2026-04-15 11:16:37

(部分内容来自网络,其真实性存疑,为了避免对您造成误导,请谨慎甄别。)

应用接续 跟你之前问的传文件、数据同步是一套体系里的,但它解决的是另一个问题:把整个应用的“使用状态”从一个设备搬到另一个设备




一、应用接续是什么


简单说:用户在手机上看视频看到 15 分 30 秒,走到平板前一碰,平板上的同一个视频接着从 15 分 30 秒开始播


这不是传一个文件,而是传当前正在干什么——包括页面、输入内容、播放进度、浏览位置等。


典型场景:

- 手机刷新闻,换到平板上继续刷到同一个位置

- 手机上编辑备忘录,换到电脑上继续编辑

- 手机上看视频,换到电视上继续看

- 手机上导航,换到车机上继续导航



二、跟之前问的有什么区别


先搞清楚这几个东西的关系:


能力干什么用传什么
应用接续把当前使用状态搬到另一台设备,接着用页面、进度、输入内容等"状态"
分布式数据对象多台设备实时同步一份内存数据变量/对象的当前值
分布式数据库持久化数据自动同步到多台设备数据库里的记录
分布式文件把文件放到一个共享目录,自动同步整个文件


举个例子理解区别


你在手机上写备忘录:

- 接续:写到一半,走到平板前点一下,平板上自动打开同一个备忘录并定位到刚才的光标位置——这是"接续"

- 分布式数据对象:手机和平板同时开着同一个备忘录,这边打字那边实时显示——这是"实时同步"

- 分布式数据库:手机保存了备忘录,过一会儿打开平板时备忘录已经在里面了——这是"持久化同步"



三、技术怎么实现的


核心接口


// 源端设备(比如手机):保存当前状态
onContinue(wantParam: Record) {
    // 把需要接续的数据存进去,比如正在看的文章URL、播放进度
    wantParam['articleUrl'] = 'https://xxx.com/article/123';
    wantParam['scrollPosition'] = 450;
    return AbilityConstant.OnContinueResult.AGREE;
}

// 目标端设备(比如平板):恢复状态 onCreate(want: Want, launchParam: AbilityConstant.LaunchParam) {     if (launchParam.launchReason === AbilityConstant.LaunchReason.CONTINUATION) {         let url = want.parameters?.['articleUrl'];         let position = want.parameters?.['scrollPosition'];         // 恢复页面并滚动到指定位置     } }


数据量限制


- 小于100KB:直接通过 wantParam 传就行

- 大于100KB:需要用分布式数据对象来传



四、配置要求


module.json5 里把 continuable 设为 true


{
    "abilities": [{
        "name": "EntryAbility",
        "continuable": true  // 开启接续能力
    }]
}



五、三个前置条件


1. 两台设备登录同一个华为账号

2. 打开 Wi-Fi 和蓝牙(系统底层自动组网)

3. 设置里开启 多设备协同 > 接续 功能



六、跟其他 Kit 的配合关系


你之前问的跟接续什么关系
Distributed Service Kit提供底层设备发现、认证、连接能力,接续跑在这上面
ArkData接续传大数据时用里面的分布式数据对象
Service Collaboration Kit跨设备调能力,接续是其中一种场景


总结:应用接续就是让用户换设备不换体验,代码上就是实现 onContinue 保存状态 + onCreate/onNewWant 恢复状态。


如果你有具体的接续场景(比如视频续播、表单续填),我可以给你贴完整的代码。


还有问题,向AI提问。


上一个 同应用跨设备数据同步 文章列表 下一个 如果你只是想在两个设备间同步数据

(汉语/英语/日语/法语/德语)语音助手(识别/合成),智能翻译,高中物理动画,数据分析,数据可视化,电话: 18201798243(同v)

© 2019-至今 适观科技

沪ICP备17002269号