鸿蒙跨设备协同开发07——动态控制应用接续

如果你也对鸿蒙开发感兴趣,加入“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
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值