> 文档中心 > 【HarmonyOS应用开发】【HCIA认证】模拟题每日1练(第3题)

【HarmonyOS应用开发】【HCIA认证】模拟题每日1练(第3题)

 

在多设备协同的鸿蒙分布式应用场景中,经常需要将设备A的Page迁移到设备B,例如:在设备A编辑电子邮件时发现设备A快没电了,如果此时不方便给设备A充电,那么就可以将电子邮件的编辑页面迁移到设备B,以便在设备B继续编辑。

跨设备迁移Page的整个过程,可以用一张时序图来表示,大家来看这张图:

在这里插入图片描述
跨设备迁移Page需要调用方法continueAbility(),调用此方法之后,系统首先回调IAbilityContinuation中的回调方法onStartContinuation(),开发者可以在此方法中决策是否开始迁移当前Page,例如:弹出一个对话框让用户确认是否开始迁移。

如果方法onStartContinuation()返回true,那么系统回调IAbilityContinuation中的回调方法onSaveData(),开发者可以在此回调方法中保存当前Page的状态数据,以便当前Page迁移到远程设备之后对其迁移前的状态数据进行恢复。

保存当前Page的状态数据之后,系统在远程设备上启动同一个Page,然后调用回调方法onRestoreData(),开发者可以在此方法中恢复Page的状态数据。

系统调用回调方法onRestoreData()之后,会继续调用回调方法onStart(),从而开始Page的生命周期。

迁移完成后,系统在当前设备上回调方法onCompleteContinuation(),开发者可以在此回调方法中执行结束迁移的动作,例如:结束迁移后销毁当前Page。

因此,这道题的答案是这样的: