HarmonyOS “跨设备迁移”原理解析
什么是HarmonyOS“跨设备迁移”?HarmonyOS“跨设备迁移”是指将承载业务的Page在同一用户的不同设备间迁移,以便支持用户业务无缝切换的诉求。“跨设备迁移”实现了业务跨设备流转功能,打破业务受限单设备的壁垒。
典型应用场景举例:
设备A完成邮件编写并选择附件,流转到另一设备
“分布式任务调度”基于分布式软总线**、**分布式数据管理**、**分布式****Profile****和分布式安全认证这四项技术特性,构建统一的分布式服务管理(发现、同步、注册、调用)机制,支持对跨设备的应用进行远程启动、远程调用、远程连接以及迁移等操作。
●** **FA有UI界面,提供与用户交互的能力
FA仅支持Page Ability,一个Page实例可以包含一组相关页面,每个页面用一个AbilitySlice实例表示。
●** **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!");
}
}
“跨设备迁移”数据流转过程:
页:
[1]