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