• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# @ohos.app.ability.continueManager (跨端迁移)
2<!--Kit: Ability Kit-->
3<!--Subsystem: DistributedAbilityManager-->
4<!--Owner: @hobbycao-->
5<!--Designer: @gsxiaowen-->
6<!--Tester: @hanjiawei-->
7<!--Adviser: @huipeizi-->
8
9continueManager提供了应用跨端迁移的管理能力,如获取应用跨端迁移过程中快速拉起目标应用的结果。
10
11> **说明:**
12>
13> 本模块首批接口从API version 18开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
14
15## 导入模块
16
17```ts
18import { continueManager } from '@kit.AbilityKit';
19```
20
21## continueManager.on
22
23on(type: 'prepareContinue', context: Context, callback: AsyncCallback&lt;ContinueResultInfo&gt;): void
24
25在应用快速拉起时,注册回调函数以获取快速拉起结果。使用callback异步回调。
26
27> **说明:**
28>
29> 快速拉起功能支持在用户触发迁移、等待迁移数据返回的过程中,并行拉起应用,减小用户等待时间。在源端应用[module.json5配置文件](../../quick-start/module-configuration-file.md)的continueType标签的取值中添加“_ContinueQuickStart”后缀,可以开启快速拉起功能。
30
31**系统能力**:SystemCapability.Ability.AbilityRuntime.Mission
32
33**参数**:
34
35  | 参数名 | 类型                                                                                              | 必填 | 说明                                       |
36  | -------- |-------------------------------------------------------------------------------------------------| -------- |------------------------------------------|
37  | type | string                                                                                          | 是 | 固定值:prepareContinue。                     |
38  | context | [Context](../apis-ability-kit/js-apis-inner-application-baseContext.md)                                                                                         | 是 | Ability的Context。                         |
39  | callback | AsyncCallback&lt;[ContinueResultInfo](js-apis-app-ability-continueManager.md#continueresultinfo)&gt; | 是 | 回调函数。当快速拉起结果获取成功,err为undefined,ContinueResultInfo为获取到的快速启动结果。否则为错误对象。 |
40
41**错误码:**
42
43以下错误码详细介绍请参考[DistributedSchedule错误码](errorcode-DistributedSchedule.md)。
44
45| 错误码ID | 错误信息 |
46| ------- | -------------------------------- |
47| 16300501 | the system ability work abnormally. |
48
49**示例**:
50
51  ```ts
52import { AbilityConstant, UIAbility, Want, continueManager } from '@kit.AbilityKit';
53import { hilog } from '@kit.PerformanceAnalysisKit';
54
55const TAG: string = '[MigrationAbility]';
56const DOMAIN_NUMBER: number = 0xFF00;
57
58export default class MigrationAbility extends UIAbility {
59    storage : LocalStorage = new LocalStorage();
60
61    onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {
62        hilog.info(DOMAIN_NUMBER, TAG, '%{public}s', 'Ability onCreate');
63
64        // 1.已配置快速拉起功能,应用立即启动时触发应用生命周期回调
65        if (launchParam.launchReason === AbilityConstant.LaunchReason.PREPARE_CONTINUATION) {
66            // 注册快速拉起结果通知的回调函数
67            try {
68              continueManager.on("prepareContinue", this.context, (err, continueResultInfo) => {
69                if (err.code != 0) {
70                  console.error('register failed, cause: ' + JSON.stringify(err));
71                  return;
72                }
73                console.info('register finished, ' + JSON.stringify(continueResultInfo));
74              });
75            } catch (e) {
76              console.error('register failed, cause: ' + JSON.stringify(e));
77            }
78            //若应用迁移数据较大,可在此处添加加载页面(页面中显示loading等)
79            //可处理应用自定义跳转、时序等问题
80            // ...
81        }
82    }
83}
84  ```
85
86## continueManager.off
87
88off(type: 'prepareContinue', context: Context, callback?: AsyncCallback&lt;ContinueResultInfo&gt;): void
89
90在应用快速拉起时,注销回调函数,不再获取快速拉起结果。使用callback异步回调。
91
92> **说明:**
93>
94> 快速拉起功能支持在用户触发迁移、等待迁移数据返回的过程中,并行拉起应用,减小用户等待时间。在源端应用[module.json5配置文件](../../quick-start/module-configuration-file.md)的continueType标签的取值中添加“_ContinueQuickStart”后缀,可以开启快速拉起功能。
95
96**系统能力**:SystemCapability.Ability.AbilityRuntime.Mission
97
98**参数**:
99
100| 参数名 | 类型                                 | 必填 | 说明                                   |
101  | -------- |------------------------------------| -------- |--------------------------------------|
102| type | string                             | 是 | 固定值:prepareContinue。                 |
103| context | [Context](../apis-ability-kit/js-apis-inner-application-baseContext.md)                            | 是 | Ability的Context。                     |
104| callback | AsyncCallback&lt;[ContinueResultInfo](js-apis-app-ability-continueManager.md#continueresultinfo)&gt; | 否 | 回调函数。当回调函数注销成功,err为undefined,ContinueResultInfo为获回调函数注销结果。否则为错误对象。 |
105
106**错误码:**
107
108以下错误码详细介绍请参考[DistributedSchedule错误码](errorcode-DistributedSchedule.md)。
109
110| 错误码ID    | 错误信息 |
111|----------| -------------------------------- |
112| 16300501 | the system ability work abnormally. |
113
114**示例**:
115
116  ```ts
117import { AbilityConstant, UIAbility, Want, continueManager } from '@kit.AbilityKit';
118import { hilog } from '@kit.PerformanceAnalysisKit';
119
120const TAG: string = '[MigrationAbility]';
121const DOMAIN_NUMBER: number = 0xFF00;
122
123export default class MigrationAbility extends UIAbility {
124    storage : LocalStorage = new LocalStorage();
125
126    onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {
127        hilog.info(DOMAIN_NUMBER, TAG, '%{public}s', 'Ability onCreate');
128
129        // 1.已配置快速拉起功能,应用立即启动时触发应用生命周期回调
130        if (launchParam.launchReason === AbilityConstant.LaunchReason.PREPARE_CONTINUATION) {
131            // 注销快速拉起结果通知的回调函数
132            try {
133              continueManager.off("prepareContinue", this.context, (err, continueResultInfo) => {
134                if (err.code != 0) {
135                  console.error('unregister failed, cause: ' + JSON.stringify(err));
136                  return;
137                }
138                console.info('unregister finished, ' + JSON.stringify(continueResultInfo));
139              });
140            } catch (e) {
141              console.error('unregister failed, cause: ' + JSON.stringify(e));
142            }
143            //若应用迁移数据较大,可在此处添加加载页面(页面中显示loading等)
144            //可处理应用自定义跳转、时序等问题
145            // ...
146        }
147    }
148}
149  ```
150
151## ContinueResultInfo
152
153注册或注销回调函数返回的快速拉起的结果。
154
155**系统能力**:SystemCapability.Ability.AbilityRuntime.Mission
156
157| 名称 | 类型                                                                            | 只读 | 可选 | 说明       |
158| -------- |-------------------------------------------------------------------------------|----|----|----------|
159| resultState | [ContinueStateCode](js-apis-app-ability-continueManager.md#continuestatecode) | 否  | 否  | 操作结果状态码。 |
160| resultInfo | string                                                                        | 否  | 是  | 操作结果的说明。 |
161
162## ContinueStateCode
163
164快速拉起的结果状态码的枚举值。
165
166**系统能力**:SystemCapability.Ability.AbilityRuntime.Mission
167
168| 名称 | 值  | 说明    |
169| -------- |----|-------|
170| SUCCESS  | 0  | 操作成功。 |
171| SYSTEM_ERROR | 其它 | 操作失败。 |
172
173