评论

收藏

[HarmonyOS] HarmonyOS “跨设备迁移”原理解析

移动开发 移动开发 发布于:2021-07-02 20:41 | 阅读数:489 | 评论:0

什么是HarmonyOS“跨设备迁移”?

  HarmonyOS“跨设备迁移”是指将承载业务的Page在同一用户的不同设备间迁移,以便支持用户业务无缝切换的诉求。“跨设备迁移”实现了业务跨设备流转功能,打破业务受限单设备的壁垒。
  典型应用场景举例:

DSC0000.jpg
  设备A完成邮件编写并选择附件,流转到另一设备

DSC0001.png
  “分布式任务调度”基于分布式软总线**、**分布式数据管理**、**分布式****Profile****和分布式安全认证这四项技术特性,构建统一的分布式服务管理(发现、同步、注册、调用)机制,支持对跨设备的应用进行远程启动、远程调用、远程连接以及迁移等操作。

DSC0002.png
  ●** **FA有UI界面,提供与用户交互的能力
  FA仅支持Page Ability,一个Page实例可以包含一组相关页面,每个页面用一个AbilitySlice实例表示。

DSC0003.png
  ●** **onStart()
  当系统首次创建Page实例时触发。应用须重写该方法,并在此初始化配置为展示AbilitySlice。Page在此后进入INACTIVE状态,用户不可交互。
· onActive()  当Page从INACTIVE状态切换到前台时触发。Page在此之后进入ACTIVE状态,该状态下,应用与用户处于可交互的状态。
· onInactive()  当Page即将进入不可交互状态时会被触发,Page在此之后进入INACTIVE状态,应用与用户不可交互。
· onBackground()  当Page不再对用户可见时触发。Page在此之后进入BACKGROUND状态。
· onForeground()  当Page从BACKGROUND状态重新回到前台时触发。Page在此之后回到INACTIVE状态。
· onStop()  当系统将要销毁Page时触发。

迁移流程

  围绕Ability的生命周期,我们来看看业务“跨设备迁移”的具体流程。
  业务“跨设备迁移”的本质即通过分布式组网把一个设备的“Ability运行状态”迁移到另外一台设备上。
  程序中“跨设备迁移”通过调用Page Ability的迁移接口ContinueAbility,将设备A的业务无缝迁移到指定设备B中。其中,支持迁移的Page以及此Page所包含的所有AbilitySlice必须实现IAbilityContinuation接口。具体接口代码如下:
public interface IAbilityContinuation {
  //是否可迁移
  boolean onStartContinuation();
  //保存数据
  boolean onSaveData(IntentParams var1);
  //恢复数据
  boolean onRestoreData(IntentParams var1);
  //迁移完成
  void onCompleteContinuation(int var1);
  default void onRemoteTerminated() {
    throw new RuntimeException("Stub!");
  }
}
  
DSC0004.png

“跨设备迁移”数据流转过程:
关注下面的标签,发现更多相似文章