如果你也对鸿蒙开发感兴趣,加入“Harmony自习室”吧!扫描下方名片,关注公众号,公众号更新更快,同时也有更多学习资料和技术讨论群。

1、前 言
本文的内容是基于鸿蒙跨设备协同开发06——应用接续的进一步讨论。
从API version 10起,提供了支持动态配置迁移能力的功能。即应用可以根据实际使用场景,在需要迁移功能时,设置开启应用迁移能力;在业务不需要迁移时,则可以关闭迁移能力(例如:编辑类应用在编辑文本的页面下才需要迁移,其他页面不需要迁移)。
我们可以通过调用setMissionContinueState接口对迁移能力进行设置。setMissionContinueState接口定义如下:
// callback版本setMissionContinueState(state: AbilityConstant.ContinueState, callback: AsyncCallback<void>): void// Promiseb版本setMissionContinueState(state: AbilityConstant.ContinueState): Promise<void>
其中AbilityConstant.ContinueState是枚举,定义如下:
enum ContinueState {CONTINUATION = 0, // 迁移保存状态。APP_RECOVERY = 1 // 应用恢复保存状态。}
以Promise版本为例,设置示例代码如下:
import { UIAbility, AbilityConstant } from '@kit.AbilityKit';import { BusinessError } from '@kit.BasicServicesKit';export default class EntryAbility extends UIAbility {onForeground() {this.context.setMissionContinueState(AbilityConstant.ContinueState.INACTIVE).then(() => {console.info('success');}).catch((err: BusinessError) => {console.error(`setMissionContinueState failed, code is ${err.code}, message is ${err.message}`);});}}
2、动态迁移实现
默认状态下,应用的迁移能力为ACTIVE状态(可以迁移)。
如果需要实现某些特殊场景(比如只在具体某个页面下支持迁移,或者只在某个事件发生时才支持迁移)可以按照如下步骤进行配置。
👉🏻 step 1:先默认关闭迁移能力
由于默认情况下,迁移能力是ACTIVE的,因此我们需要如果想默认先关闭迁移能力,就需要在Ability的onCreate生命周期回调中关闭(发生的时机靠前),示例代码如下:
// EntryAb

最低0.47元/天 解锁文章
1895

被折叠的 条评论
为什么被折叠?



