1e41f4b71Sopenharmony_ci# AbilityDelegator
2e41f4b71Sopenharmony_ci
3e41f4b71Sopenharmony_ciThe **AbilityDelegator** module provides APIs for managing [AbilityMonitor](../apis-ability-kit/js-apis-inner-application-abilityMonitor.md#abilitymonitor-1) instances that are used to monitor the lifecycle state changes of a specified ability. You can use the APIs to add and remove **AbilityMonitor** instances, wait for an ability to reach the **onCreate** lifecycle state, set the waiting time, obtain the lifecycle state of an ability, obtain the top ability of the current application, and start an ability.
4e41f4b71Sopenharmony_ci
5e41f4b71Sopenharmony_ci> **NOTE**
6e41f4b71Sopenharmony_ci> 
7e41f4b71Sopenharmony_ci> The initial APIs of this module are supported since API version 8. Newly added APIs will be marked with a superscript to indicate their earliest API version.
8e41f4b71Sopenharmony_ci> 
9e41f4b71Sopenharmony_ci> The APIs of this module can be used only in <!--RP1-->[arkxtest](../../application-test/arkxtest-guidelines.md)<!--RP1End-->.
10e41f4b71Sopenharmony_ci
11e41f4b71Sopenharmony_ci## Modules to Import
12e41f4b71Sopenharmony_ci
13e41f4b71Sopenharmony_ci```ts
14e41f4b71Sopenharmony_ciimport { abilityDelegatorRegistry } from '@kit.TestKit';
15e41f4b71Sopenharmony_ci```
16e41f4b71Sopenharmony_ci
17e41f4b71Sopenharmony_ci## Usage
18e41f4b71Sopenharmony_ci
19e41f4b71Sopenharmony_ciAn **AbilityDelegator** object is obtained by calling **getAbilityDelegator** in **abilityDelegatorRegistry**.
20e41f4b71Sopenharmony_ci```ts
21e41f4b71Sopenharmony_ciimport { abilityDelegatorRegistry } from '@kit.TestKit';
22e41f4b71Sopenharmony_ci```
23e41f4b71Sopenharmony_ci
24e41f4b71Sopenharmony_ci## AbilityDelegator
25e41f4b71Sopenharmony_ci
26e41f4b71Sopenharmony_ci### addAbilityMonitor<sup>9+</sup>
27e41f4b71Sopenharmony_ci
28e41f4b71Sopenharmony_ciaddAbilityMonitor(monitor: AbilityMonitor, callback: AsyncCallback\<void>): void
29e41f4b71Sopenharmony_ci
30e41f4b71Sopenharmony_ciAdds an **AbilityMonitor** instance. This API uses an asynchronous callback to return the result. Multi-thread concurrent calls are not supported.
31e41f4b71Sopenharmony_ci
32e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11.
33e41f4b71Sopenharmony_ci
34e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Ability.AbilityRuntime.Core
35e41f4b71Sopenharmony_ci
36e41f4b71Sopenharmony_ci**Parameters**
37e41f4b71Sopenharmony_ci
38e41f4b71Sopenharmony_ci| Name  | Type                                                        | Mandatory| Description                                                        |
39e41f4b71Sopenharmony_ci| -------- | ------------------------------------------------------------ | -------- | ------------------------------------------------------------ |
40e41f4b71Sopenharmony_ci| monitor  | [AbilityMonitor](../apis-ability-kit/js-apis-inner-application-abilityMonitor.md#abilitymonitor-1) | Yes      | [AbilityMonitor](../apis-ability-kit/js-apis-inner-application-abilityMonitor.md#abilitymonitor-1) instance.|
41e41f4b71Sopenharmony_ci| callback | AsyncCallback\<void>                                         | Yes      | Callback used to return the result. If the **AbilityMonitor** instance is added, **err** is **undefined**. Otherwise, **err** is an error object.  |
42e41f4b71Sopenharmony_ci
43e41f4b71Sopenharmony_ci**Error codes**
44e41f4b71Sopenharmony_ci
45e41f4b71Sopenharmony_ciFor details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Ability Error Codes](../apis-ability-kit/errorcode-ability.md).
46e41f4b71Sopenharmony_ci
47e41f4b71Sopenharmony_ci| ID| Error Message|
48e41f4b71Sopenharmony_ci| ------- | -------- |
49e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. |
50e41f4b71Sopenharmony_ci| 16000100 | AddAbilityMonitor failed. |
51e41f4b71Sopenharmony_ci
52e41f4b71Sopenharmony_ci**Example**
53e41f4b71Sopenharmony_ci
54e41f4b71Sopenharmony_ci```ts
55e41f4b71Sopenharmony_ciimport { abilityDelegatorRegistry } from '@kit.TestKit';
56e41f4b71Sopenharmony_ciimport { UIAbility } from '@kit.AbilityKit';
57e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
58e41f4b71Sopenharmony_ci
59e41f4b71Sopenharmony_cilet abilityDelegator: abilityDelegatorRegistry.AbilityDelegator;
60e41f4b71Sopenharmony_cilet monitor: abilityDelegatorRegistry.AbilityMonitor = {
61e41f4b71Sopenharmony_ci  abilityName: 'abilityname',
62e41f4b71Sopenharmony_ci  onAbilityCreate: onAbilityCreateCallback
63e41f4b71Sopenharmony_ci};
64e41f4b71Sopenharmony_ci
65e41f4b71Sopenharmony_cifunction onAbilityCreateCallback(data: UIAbility) {
66e41f4b71Sopenharmony_ci  console.info(`onAbilityCreateCallback, data: ${JSON.stringify(data)}`);
67e41f4b71Sopenharmony_ci}
68e41f4b71Sopenharmony_ci
69e41f4b71Sopenharmony_ciabilityDelegator = abilityDelegatorRegistry.getAbilityDelegator();
70e41f4b71Sopenharmony_ciabilityDelegator.addAbilityMonitor(monitor, (error: BusinessError) => {
71e41f4b71Sopenharmony_ci  console.error(`addAbilityMonitor fail, error: ${JSON.stringify(error)}`);
72e41f4b71Sopenharmony_ci});
73e41f4b71Sopenharmony_ci```
74e41f4b71Sopenharmony_ci
75e41f4b71Sopenharmony_ci### addAbilityMonitor<sup>9+</sup>
76e41f4b71Sopenharmony_ci
77e41f4b71Sopenharmony_ciaddAbilityMonitor(monitor: AbilityMonitor): Promise\<void>
78e41f4b71Sopenharmony_ci
79e41f4b71Sopenharmony_ciAdds an **AbilityMonitor** instance. This API uses a promise to return the result. Multi-thread concurrent calls are not supported.
80e41f4b71Sopenharmony_ci
81e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11.
82e41f4b71Sopenharmony_ci
83e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Ability.AbilityRuntime.Core
84e41f4b71Sopenharmony_ci
85e41f4b71Sopenharmony_ci**Parameters**
86e41f4b71Sopenharmony_ci
87e41f4b71Sopenharmony_ci| Name | Type                                                        | Mandatory| Description                                                        |
88e41f4b71Sopenharmony_ci| ------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
89e41f4b71Sopenharmony_ci| monitor | [AbilityMonitor](../apis-ability-kit/js-apis-inner-application-abilityMonitor.md#abilitymonitor-1) | Yes  | [AbilityMonitor](../apis-ability-kit/js-apis-inner-application-abilityMonitor.md#abilitymonitor-1) instance.|
90e41f4b71Sopenharmony_ci
91e41f4b71Sopenharmony_ci**Return value**
92e41f4b71Sopenharmony_ci
93e41f4b71Sopenharmony_ci| Type          | Description               |
94e41f4b71Sopenharmony_ci| -------------- | ------------------- |
95e41f4b71Sopenharmony_ci| Promise\<void> |Promise that returns no value.|
96e41f4b71Sopenharmony_ci
97e41f4b71Sopenharmony_ci**Error codes**
98e41f4b71Sopenharmony_ci
99e41f4b71Sopenharmony_ciFor details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Ability Error Codes](../apis-ability-kit/errorcode-ability.md).
100e41f4b71Sopenharmony_ci
101e41f4b71Sopenharmony_ci| ID| Error Message|
102e41f4b71Sopenharmony_ci| ------- | -------- |
103e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. |
104e41f4b71Sopenharmony_ci| 16000100 | AddAbilityMonitor failed. |
105e41f4b71Sopenharmony_ci
106e41f4b71Sopenharmony_ci**Example**
107e41f4b71Sopenharmony_ci
108e41f4b71Sopenharmony_ci```ts
109e41f4b71Sopenharmony_ciimport { abilityDelegatorRegistry } from '@kit.TestKit';
110e41f4b71Sopenharmony_ciimport { UIAbility } from '@kit.AbilityKit';
111e41f4b71Sopenharmony_ci
112e41f4b71Sopenharmony_cifunction onAbilityCreateCallback(data: UIAbility) {
113e41f4b71Sopenharmony_ci  console.info('onAbilityCreateCallback');
114e41f4b71Sopenharmony_ci}
115e41f4b71Sopenharmony_ci
116e41f4b71Sopenharmony_cilet monitor: abilityDelegatorRegistry.AbilityMonitor = {
117e41f4b71Sopenharmony_ci  abilityName: 'abilityname',
118e41f4b71Sopenharmony_ci  onAbilityCreate: onAbilityCreateCallback
119e41f4b71Sopenharmony_ci};
120e41f4b71Sopenharmony_cilet abilityDelegator = abilityDelegatorRegistry.getAbilityDelegator();
121e41f4b71Sopenharmony_ci
122e41f4b71Sopenharmony_ciabilityDelegator.addAbilityMonitor(monitor).then(() => {
123e41f4b71Sopenharmony_ci  console.info('addAbilityMonitor promise');
124e41f4b71Sopenharmony_ci});
125e41f4b71Sopenharmony_ci```
126e41f4b71Sopenharmony_ci
127e41f4b71Sopenharmony_ci### addAbilityMonitorSync<sup>10+</sup>
128e41f4b71Sopenharmony_ci
129e41f4b71Sopenharmony_ciaddAbilityMonitorSync(monitor: AbilityMonitor): void
130e41f4b71Sopenharmony_ci
131e41f4b71Sopenharmony_ciAdds an **AbilityMonitor** instance. This API returns the result synchronously. Multi-thread concurrent calls are not supported.
132e41f4b71Sopenharmony_ci
133e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11.
134e41f4b71Sopenharmony_ci
135e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Ability.AbilityRuntime.Core
136e41f4b71Sopenharmony_ci
137e41f4b71Sopenharmony_ci**Parameters**
138e41f4b71Sopenharmony_ci
139e41f4b71Sopenharmony_ci| Name | Type                                                        | Mandatory| Description                                                        |
140e41f4b71Sopenharmony_ci| ------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
141e41f4b71Sopenharmony_ci| monitor | [AbilityMonitor](../apis-ability-kit/js-apis-inner-application-abilityMonitor.md#abilitymonitor-1) | Yes  | [AbilityMonitor](../apis-ability-kit/js-apis-inner-application-abilityMonitor.md#abilitymonitor-1) instance.|
142e41f4b71Sopenharmony_ci
143e41f4b71Sopenharmony_ci**Error codes**
144e41f4b71Sopenharmony_ci
145e41f4b71Sopenharmony_ciFor details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Ability Error Codes](../apis-ability-kit/errorcode-ability.md).
146e41f4b71Sopenharmony_ci
147e41f4b71Sopenharmony_ci| ID| Error Message|
148e41f4b71Sopenharmony_ci| ------- | -------- |
149e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. |
150e41f4b71Sopenharmony_ci| 16000100 | AddAbilityMonitorSync failed. |
151e41f4b71Sopenharmony_ci
152e41f4b71Sopenharmony_ci**Example**
153e41f4b71Sopenharmony_ci
154e41f4b71Sopenharmony_ci```ts
155e41f4b71Sopenharmony_ciimport { abilityDelegatorRegistry } from '@kit.TestKit';
156e41f4b71Sopenharmony_ciimport { UIAbility } from '@kit.AbilityKit';
157e41f4b71Sopenharmony_ci
158e41f4b71Sopenharmony_cilet abilityDelegator: abilityDelegatorRegistry.AbilityDelegator;
159e41f4b71Sopenharmony_ci
160e41f4b71Sopenharmony_cifunction onAbilityCreateCallback(data: UIAbility) {
161e41f4b71Sopenharmony_ci  console.info('onAbilityCreateCallback');
162e41f4b71Sopenharmony_ci}
163e41f4b71Sopenharmony_ci
164e41f4b71Sopenharmony_cilet monitor: abilityDelegatorRegistry.AbilityMonitor = {
165e41f4b71Sopenharmony_ci  abilityName: 'abilityname',
166e41f4b71Sopenharmony_ci  onAbilityCreate: onAbilityCreateCallback
167e41f4b71Sopenharmony_ci};
168e41f4b71Sopenharmony_ci
169e41f4b71Sopenharmony_ciabilityDelegator = abilityDelegatorRegistry.getAbilityDelegator();
170e41f4b71Sopenharmony_ciabilityDelegator.addAbilityMonitorSync(monitor);
171e41f4b71Sopenharmony_ci```
172e41f4b71Sopenharmony_ci
173e41f4b71Sopenharmony_ci### removeAbilityMonitor<sup>9+</sup>
174e41f4b71Sopenharmony_ci
175e41f4b71Sopenharmony_ciremoveAbilityMonitor(monitor: AbilityMonitor, callback: AsyncCallback\<void>): void
176e41f4b71Sopenharmony_ci
177e41f4b71Sopenharmony_ciRemoves an **AbilityMonitor** instance. This API uses an asynchronous callback to return the result.
178e41f4b71Sopenharmony_ci
179e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11.
180e41f4b71Sopenharmony_ci
181e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Ability.AbilityRuntime.Core
182e41f4b71Sopenharmony_ci
183e41f4b71Sopenharmony_ci**Parameters**
184e41f4b71Sopenharmony_ci
185e41f4b71Sopenharmony_ci| Name  | Type                                                        | Mandatory| Description                                                        |
186e41f4b71Sopenharmony_ci| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
187e41f4b71Sopenharmony_ci| monitor  | [AbilityMonitor](../apis-ability-kit/js-apis-inner-application-abilityMonitor.md#abilitymonitor-1) | Yes  | [AbilityMonitor](../apis-ability-kit/js-apis-inner-application-abilityMonitor.md#abilitymonitor-1) instance.|
188e41f4b71Sopenharmony_ci| callback | AsyncCallback\<void>                                         | Yes  | Callback used to return the result. If the **AbilityMonitor** instance is removed, **err** is **undefined**. Otherwise, **err** is an error object. |
189e41f4b71Sopenharmony_ci
190e41f4b71Sopenharmony_ci**Error codes**
191e41f4b71Sopenharmony_ci
192e41f4b71Sopenharmony_ciFor details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Ability Error Codes](../apis-ability-kit/errorcode-ability.md).
193e41f4b71Sopenharmony_ci
194e41f4b71Sopenharmony_ci| ID| Error Message|
195e41f4b71Sopenharmony_ci| ------- | -------- |
196e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. |
197e41f4b71Sopenharmony_ci| 16000100 | RemoveAbilityMonitor failed. |
198e41f4b71Sopenharmony_ci
199e41f4b71Sopenharmony_ci**Example**
200e41f4b71Sopenharmony_ci
201e41f4b71Sopenharmony_ci```ts
202e41f4b71Sopenharmony_ciimport { abilityDelegatorRegistry } from '@kit.TestKit';
203e41f4b71Sopenharmony_ciimport { UIAbility } from '@kit.AbilityKit';
204e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
205e41f4b71Sopenharmony_ci
206e41f4b71Sopenharmony_cilet abilityDelegator: abilityDelegatorRegistry.AbilityDelegator;
207e41f4b71Sopenharmony_ci
208e41f4b71Sopenharmony_cifunction onAbilityCreateCallback(data: UIAbility) {
209e41f4b71Sopenharmony_ci    console.info('onAbilityCreateCallback');
210e41f4b71Sopenharmony_ci}
211e41f4b71Sopenharmony_ci
212e41f4b71Sopenharmony_cilet monitor: abilityDelegatorRegistry.AbilityMonitor = {
213e41f4b71Sopenharmony_ci    abilityName: 'abilityname',
214e41f4b71Sopenharmony_ci    onAbilityCreate: onAbilityCreateCallback
215e41f4b71Sopenharmony_ci};
216e41f4b71Sopenharmony_ci
217e41f4b71Sopenharmony_ciabilityDelegator = abilityDelegatorRegistry.getAbilityDelegator();
218e41f4b71Sopenharmony_ciabilityDelegator.removeAbilityMonitor(monitor, (error: BusinessError) => {
219e41f4b71Sopenharmony_ci    console.error(`removeAbilityMonitor fail, error: ${JSON.stringify(error)}`);
220e41f4b71Sopenharmony_ci});
221e41f4b71Sopenharmony_ci```
222e41f4b71Sopenharmony_ci
223e41f4b71Sopenharmony_ci### removeAbilityMonitor<sup>9+</sup>
224e41f4b71Sopenharmony_ci
225e41f4b71Sopenharmony_ciremoveAbilityMonitor(monitor: AbilityMonitor): Promise\<void>
226e41f4b71Sopenharmony_ci
227e41f4b71Sopenharmony_ciRemoves an **AbilityMonitor** instance. This API uses a promise to return the result. Multi-thread concurrent calls are not supported.
228e41f4b71Sopenharmony_ci
229e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11.
230e41f4b71Sopenharmony_ci
231e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Ability.AbilityRuntime.Core
232e41f4b71Sopenharmony_ci
233e41f4b71Sopenharmony_ci**Parameters**
234e41f4b71Sopenharmony_ci
235e41f4b71Sopenharmony_ci| Name   | Type                                                        | Mandatory| Description                                                        |
236e41f4b71Sopenharmony_ci| ------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
237e41f4b71Sopenharmony_ci| monitor | [AbilityMonitor](../apis-ability-kit/js-apis-inner-application-abilityMonitor.md#abilitymonitor-1) | Yes  | [AbilityMonitor](../apis-ability-kit/js-apis-inner-application-abilityMonitor.md#abilitymonitor-1) instance.|
238e41f4b71Sopenharmony_ci
239e41f4b71Sopenharmony_ci**Return value**
240e41f4b71Sopenharmony_ci
241e41f4b71Sopenharmony_ci| Type          | Description               |
242e41f4b71Sopenharmony_ci| -------------- | ------------------- |
243e41f4b71Sopenharmony_ci| Promise\<void> | Promise that returns no value.|
244e41f4b71Sopenharmony_ci
245e41f4b71Sopenharmony_ci**Error codes**
246e41f4b71Sopenharmony_ci
247e41f4b71Sopenharmony_ciFor details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Ability Error Codes](../apis-ability-kit/errorcode-ability.md).
248e41f4b71Sopenharmony_ci
249e41f4b71Sopenharmony_ci| ID| Error Message|
250e41f4b71Sopenharmony_ci| ------- | -------- |
251e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. |
252e41f4b71Sopenharmony_ci| 16000100 | RemoveAbilityMonitor failed. |
253e41f4b71Sopenharmony_ci
254e41f4b71Sopenharmony_ci- Example
255e41f4b71Sopenharmony_ci
256e41f4b71Sopenharmony_ci```ts
257e41f4b71Sopenharmony_ciimport { abilityDelegatorRegistry } from '@kit.TestKit';
258e41f4b71Sopenharmony_ciimport { UIAbility } from '@kit.AbilityKit';
259e41f4b71Sopenharmony_ci
260e41f4b71Sopenharmony_cilet abilityDelegator: abilityDelegatorRegistry.AbilityDelegator;
261e41f4b71Sopenharmony_cilet monitor: abilityDelegatorRegistry.AbilityMonitor = {
262e41f4b71Sopenharmony_ci  abilityName: 'abilityname',
263e41f4b71Sopenharmony_ci  onAbilityCreate: onAbilityCreateCallback
264e41f4b71Sopenharmony_ci};
265e41f4b71Sopenharmony_ci
266e41f4b71Sopenharmony_cifunction onAbilityCreateCallback(data: UIAbility) {
267e41f4b71Sopenharmony_ci  console.info('onAbilityCreateCallback');
268e41f4b71Sopenharmony_ci}
269e41f4b71Sopenharmony_ci
270e41f4b71Sopenharmony_ciabilityDelegator = abilityDelegatorRegistry.getAbilityDelegator();
271e41f4b71Sopenharmony_ciabilityDelegator.removeAbilityMonitor(monitor).then(() => {
272e41f4b71Sopenharmony_ci  console.info('removeAbilityMonitor promise');
273e41f4b71Sopenharmony_ci});
274e41f4b71Sopenharmony_ci```
275e41f4b71Sopenharmony_ci
276e41f4b71Sopenharmony_ci### removeAbilityMonitorSync<sup>10+</sup>
277e41f4b71Sopenharmony_ci
278e41f4b71Sopenharmony_ciremoveAbilityMonitorSync(monitor: AbilityMonitor): void
279e41f4b71Sopenharmony_ci
280e41f4b71Sopenharmony_ciRemoves an **AbilityMonitor** instance. This API returns the result synchronously. Multi-thread concurrent calls are not supported.
281e41f4b71Sopenharmony_ci
282e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11.
283e41f4b71Sopenharmony_ci
284e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Ability.AbilityRuntime.Core
285e41f4b71Sopenharmony_ci
286e41f4b71Sopenharmony_ci**Parameters**
287e41f4b71Sopenharmony_ci
288e41f4b71Sopenharmony_ci| Name  | Type                                                        | Mandatory| Description                                                        |
289e41f4b71Sopenharmony_ci| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
290e41f4b71Sopenharmony_ci| monitor  | [AbilityMonitor](../apis-ability-kit/js-apis-inner-application-abilityMonitor.md#abilitymonitor-1) | Yes  | [AbilityMonitor](../apis-ability-kit/js-apis-inner-application-abilityMonitor.md#abilitymonitor-1) instance.|
291e41f4b71Sopenharmony_ci
292e41f4b71Sopenharmony_ci**Error codes**
293e41f4b71Sopenharmony_ci
294e41f4b71Sopenharmony_ciFor details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Ability Error Codes](../apis-ability-kit/errorcode-ability.md).
295e41f4b71Sopenharmony_ci
296e41f4b71Sopenharmony_ci| ID| Error Message|
297e41f4b71Sopenharmony_ci| ------- | -------- |
298e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. |
299e41f4b71Sopenharmony_ci| 16000100 | RemoveAbilityMonitorSync failed. |
300e41f4b71Sopenharmony_ci
301e41f4b71Sopenharmony_ci**Example**
302e41f4b71Sopenharmony_ci
303e41f4b71Sopenharmony_ci```ts
304e41f4b71Sopenharmony_ciimport { abilityDelegatorRegistry } from '@kit.TestKit';
305e41f4b71Sopenharmony_ciimport { UIAbility } from '@kit.AbilityKit';
306e41f4b71Sopenharmony_ci
307e41f4b71Sopenharmony_cilet abilityDelegator: abilityDelegatorRegistry.AbilityDelegator;
308e41f4b71Sopenharmony_cilet monitor: abilityDelegatorRegistry.AbilityMonitor = {
309e41f4b71Sopenharmony_ci  abilityName: 'abilityname',
310e41f4b71Sopenharmony_ci  onAbilityCreate: onAbilityCreateCallback
311e41f4b71Sopenharmony_ci};
312e41f4b71Sopenharmony_ci
313e41f4b71Sopenharmony_cifunction onAbilityCreateCallback(data: UIAbility) {
314e41f4b71Sopenharmony_ci  console.info('onAbilityCreateCallback');
315e41f4b71Sopenharmony_ci}
316e41f4b71Sopenharmony_ci
317e41f4b71Sopenharmony_ciabilityDelegator = abilityDelegatorRegistry.getAbilityDelegator();
318e41f4b71Sopenharmony_ciabilityDelegator.removeAbilityMonitorSync(monitor);
319e41f4b71Sopenharmony_ci```
320e41f4b71Sopenharmony_ci
321e41f4b71Sopenharmony_ci### waitAbilityMonitor<sup>9+</sup>
322e41f4b71Sopenharmony_ci
323e41f4b71Sopenharmony_ciwaitAbilityMonitor(monitor: AbilityMonitor, callback: AsyncCallback\<UIAbility>): void
324e41f4b71Sopenharmony_ci
325e41f4b71Sopenharmony_ciWaits for the **Ability** instance that matches the **AbilityMonitor** instance to reach the **onCreate** lifecycle state and returns the **Ability** instance. This API uses an asynchronous callback to return the result. Multi-thread concurrent calls are not supported.
326e41f4b71Sopenharmony_ci
327e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11.
328e41f4b71Sopenharmony_ci
329e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Ability.AbilityRuntime.Core
330e41f4b71Sopenharmony_ci
331e41f4b71Sopenharmony_ci**Parameters**
332e41f4b71Sopenharmony_ci
333e41f4b71Sopenharmony_ci| Name  | Type                                                        | Mandatory| Description                                                        |
334e41f4b71Sopenharmony_ci| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
335e41f4b71Sopenharmony_ci| monitor  | [AbilityMonitor](../apis-ability-kit/js-apis-inner-application-abilityMonitor.md#abilitymonitor-1) | Yes  | [AbilityMonitor](../apis-ability-kit/js-apis-inner-application-abilityMonitor.md#abilitymonitor-1) instance.|
336e41f4b71Sopenharmony_ci| callback | AsyncCallback\<[UIAbility](../apis-ability-kit/js-apis-app-ability-uiAbility.md)> | Yes  | Callback used to return the result. If the operation is successful, **err** is **undefined** and **data** is the **Ability** instance obtained. Otherwise, **err** is an error object.  |
337e41f4b71Sopenharmony_ci
338e41f4b71Sopenharmony_ci**Error codes**
339e41f4b71Sopenharmony_ci
340e41f4b71Sopenharmony_ciFor details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Ability Error Codes](../apis-ability-kit/errorcode-ability.md).
341e41f4b71Sopenharmony_ci
342e41f4b71Sopenharmony_ci| ID| Error Message|
343e41f4b71Sopenharmony_ci| ------- | -------- |
344e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. |
345e41f4b71Sopenharmony_ci| 16000100 | WaitAbilityMonitor failed. |
346e41f4b71Sopenharmony_ci
347e41f4b71Sopenharmony_ci**Example**
348e41f4b71Sopenharmony_ci
349e41f4b71Sopenharmony_ci```ts
350e41f4b71Sopenharmony_ciimport { abilityDelegatorRegistry } from '@kit.TestKit';
351e41f4b71Sopenharmony_ciimport { UIAbility } from '@kit.AbilityKit';
352e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
353e41f4b71Sopenharmony_ci
354e41f4b71Sopenharmony_cilet abilityDelegator: abilityDelegatorRegistry.AbilityDelegator;
355e41f4b71Sopenharmony_cilet monitor: abilityDelegatorRegistry.AbilityMonitor = {
356e41f4b71Sopenharmony_ci  abilityName: 'abilityname',
357e41f4b71Sopenharmony_ci  onAbilityCreate: onAbilityCreateCallback
358e41f4b71Sopenharmony_ci};
359e41f4b71Sopenharmony_ci
360e41f4b71Sopenharmony_cifunction onAbilityCreateCallback(data: UIAbility) {
361e41f4b71Sopenharmony_ci  console.info('onAbilityCreateCallback');
362e41f4b71Sopenharmony_ci}
363e41f4b71Sopenharmony_ci
364e41f4b71Sopenharmony_ciabilityDelegator = abilityDelegatorRegistry.getAbilityDelegator();
365e41f4b71Sopenharmony_ciabilityDelegator.waitAbilityMonitor(monitor, (error: BusinessError, data: UIAbility) => {
366e41f4b71Sopenharmony_ci  if (error) {
367e41f4b71Sopenharmony_ci    console.error(`waitAbilityMonitor fail, error: ${JSON.stringify(error)}`);
368e41f4b71Sopenharmony_ci  } else {
369e41f4b71Sopenharmony_ci    console.log(`waitAbilityMonitor success, data: ${JSON.stringify(data)}`);
370e41f4b71Sopenharmony_ci  }
371e41f4b71Sopenharmony_ci});
372e41f4b71Sopenharmony_ci```
373e41f4b71Sopenharmony_ci
374e41f4b71Sopenharmony_ci### waitAbilityMonitor<sup>9+</sup>
375e41f4b71Sopenharmony_ci
376e41f4b71Sopenharmony_ciwaitAbilityMonitor(monitor: AbilityMonitor, timeout: number, callback: AsyncCallback\<UIAbility>): void
377e41f4b71Sopenharmony_ci
378e41f4b71Sopenharmony_ciWaits a period of time for the **Ability** instance that matches the **AbilityMonitor** instance to reach the **onCreate** lifecycle state and returns the **Ability** instance. This API uses an asynchronous callback to return the result. Multi-thread concurrent calls are not supported.
379e41f4b71Sopenharmony_ci
380e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11.
381e41f4b71Sopenharmony_ci
382e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Ability.AbilityRuntime.Core
383e41f4b71Sopenharmony_ci
384e41f4b71Sopenharmony_ci**Parameters**
385e41f4b71Sopenharmony_ci
386e41f4b71Sopenharmony_ci| Name  | Type                                                        | Mandatory| Description                                                        |
387e41f4b71Sopenharmony_ci| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
388e41f4b71Sopenharmony_ci| monitor  | [AbilityMonitor](../apis-ability-kit/js-apis-inner-application-abilityMonitor.md#abilitymonitor-1) | Yes  | [AbilityMonitor](../apis-ability-kit/js-apis-inner-application-abilityMonitor.md#abilitymonitor-1) instance.|
389e41f4b71Sopenharmony_ci| timeout  | number                                                       | Yes  | Maximum waiting time, in ms.                                |
390e41f4b71Sopenharmony_ci| callback | AsyncCallback\<[UIAbility](../apis-ability-kit/js-apis-app-ability-uiAbility.md)> | Yes  | Callback used to return the result.                                          |
391e41f4b71Sopenharmony_ci
392e41f4b71Sopenharmony_ci**Error codes**
393e41f4b71Sopenharmony_ci
394e41f4b71Sopenharmony_ciFor details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Ability Error Codes](../apis-ability-kit/errorcode-ability.md).
395e41f4b71Sopenharmony_ci
396e41f4b71Sopenharmony_ci| ID| Error Message|
397e41f4b71Sopenharmony_ci| ------- | -------- |
398e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. |
399e41f4b71Sopenharmony_ci| 16000100 | WaitAbilityMonitor failed. |
400e41f4b71Sopenharmony_ci
401e41f4b71Sopenharmony_ci**Example**
402e41f4b71Sopenharmony_ci
403e41f4b71Sopenharmony_ci```ts
404e41f4b71Sopenharmony_ciimport { abilityDelegatorRegistry } from '@kit.TestKit';
405e41f4b71Sopenharmony_ciimport { UIAbility } from '@kit.AbilityKit';
406e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
407e41f4b71Sopenharmony_ci
408e41f4b71Sopenharmony_cilet abilityDelegator: abilityDelegatorRegistry.AbilityDelegator;
409e41f4b71Sopenharmony_cilet timeout = 100;
410e41f4b71Sopenharmony_cilet monitor: abilityDelegatorRegistry.AbilityMonitor = {
411e41f4b71Sopenharmony_ci  abilityName: 'abilityname',
412e41f4b71Sopenharmony_ci  onAbilityCreate: onAbilityCreateCallback
413e41f4b71Sopenharmony_ci};
414e41f4b71Sopenharmony_ci
415e41f4b71Sopenharmony_cifunction onAbilityCreateCallback(data: UIAbility) {
416e41f4b71Sopenharmony_ci  console.info('onAbilityCreateCallback');
417e41f4b71Sopenharmony_ci}
418e41f4b71Sopenharmony_ci
419e41f4b71Sopenharmony_ciabilityDelegator = abilityDelegatorRegistry.getAbilityDelegator();
420e41f4b71Sopenharmony_ciabilityDelegator.waitAbilityMonitor(monitor, timeout, (error: BusinessError, data: UIAbility) => {
421e41f4b71Sopenharmony_ci  if (error && error.code !== 0) {
422e41f4b71Sopenharmony_ci    console.error(`waitAbilityMonitor fail, error: ${JSON.stringify(error)}`);
423e41f4b71Sopenharmony_ci  } else {
424e41f4b71Sopenharmony_ci    console.log(`waitAbilityMonitor success, data: ${JSON.stringify(data)}`);
425e41f4b71Sopenharmony_ci  }
426e41f4b71Sopenharmony_ci});
427e41f4b71Sopenharmony_ci```
428e41f4b71Sopenharmony_ci
429e41f4b71Sopenharmony_ci
430e41f4b71Sopenharmony_ci
431e41f4b71Sopenharmony_ci### waitAbilityMonitor<sup>9+</sup>
432e41f4b71Sopenharmony_ci
433e41f4b71Sopenharmony_ciwaitAbilityMonitor(monitor: AbilityMonitor, timeout?: number): Promise\<UIAbility>
434e41f4b71Sopenharmony_ci
435e41f4b71Sopenharmony_ciWaits a period of time for the **Ability** instance that matches the **AbilityMonitor** instance to reach the **onCreate** lifecycle state and returns the **Ability** instance. This API uses a promise to return the result. Multi-thread concurrent calls are not supported.
436e41f4b71Sopenharmony_ci
437e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11.
438e41f4b71Sopenharmony_ci
439e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Ability.AbilityRuntime.Core
440e41f4b71Sopenharmony_ci
441e41f4b71Sopenharmony_ci**Parameters**
442e41f4b71Sopenharmony_ci
443e41f4b71Sopenharmony_ci| Name | Type                                                        | Mandatory| Description                                                        |
444e41f4b71Sopenharmony_ci| ------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
445e41f4b71Sopenharmony_ci| monitor | [AbilityMonitor](../apis-ability-kit/js-apis-inner-application-abilityMonitor.md#abilitymonitor-1) | Yes  | [AbilityMonitor](../apis-ability-kit/js-apis-inner-application-abilityMonitor.md#abilitymonitor-1) instance.|
446e41f4b71Sopenharmony_ci| timeout | number                                                       | No  | Maximum waiting time, in ms.                                |
447e41f4b71Sopenharmony_ci
448e41f4b71Sopenharmony_ci**Return value**
449e41f4b71Sopenharmony_ci
450e41f4b71Sopenharmony_ci| Type                                                       | Description                      |
451e41f4b71Sopenharmony_ci| ----------------------------------------------------------- | -------------------------- |
452e41f4b71Sopenharmony_ci| Promise\<[UIAbility](../apis-ability-kit/js-apis-app-ability-uiAbility.md)> | Promise used to return the **Ability** instance obtained.|
453e41f4b71Sopenharmony_ci
454e41f4b71Sopenharmony_ci**Error codes**
455e41f4b71Sopenharmony_ci
456e41f4b71Sopenharmony_ciFor details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Ability Error Codes](../apis-ability-kit/errorcode-ability.md).
457e41f4b71Sopenharmony_ci
458e41f4b71Sopenharmony_ci| ID| Error Message|
459e41f4b71Sopenharmony_ci| ------- | -------- |
460e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. |
461e41f4b71Sopenharmony_ci| 16000100 | WaitAbilityMonitor failed. |
462e41f4b71Sopenharmony_ci
463e41f4b71Sopenharmony_ci**Example**
464e41f4b71Sopenharmony_ci
465e41f4b71Sopenharmony_ci```ts
466e41f4b71Sopenharmony_ciimport { abilityDelegatorRegistry } from '@kit.TestKit';
467e41f4b71Sopenharmony_ciimport { UIAbility } from '@kit.AbilityKit';
468e41f4b71Sopenharmony_ci
469e41f4b71Sopenharmony_cilet abilityDelegator: abilityDelegatorRegistry.AbilityDelegator;
470e41f4b71Sopenharmony_cilet monitor: abilityDelegatorRegistry.AbilityMonitor = {
471e41f4b71Sopenharmony_ci  abilityName: 'abilityname',
472e41f4b71Sopenharmony_ci  onAbilityCreate: onAbilityCreateCallback
473e41f4b71Sopenharmony_ci};
474e41f4b71Sopenharmony_ci
475e41f4b71Sopenharmony_cifunction onAbilityCreateCallback(data: UIAbility) {
476e41f4b71Sopenharmony_ci  console.info('onAbilityCreateCallback');
477e41f4b71Sopenharmony_ci}
478e41f4b71Sopenharmony_ci
479e41f4b71Sopenharmony_ciabilityDelegator = abilityDelegatorRegistry.getAbilityDelegator();
480e41f4b71Sopenharmony_ciabilityDelegator.waitAbilityMonitor(monitor).then((data: UIAbility) => {
481e41f4b71Sopenharmony_ci  console.info('waitAbilityMonitor promise');
482e41f4b71Sopenharmony_ci});
483e41f4b71Sopenharmony_ci```
484e41f4b71Sopenharmony_ci
485e41f4b71Sopenharmony_ci### getAppContext<sup>9+</sup>
486e41f4b71Sopenharmony_ci
487e41f4b71Sopenharmony_cigetAppContext(): Context
488e41f4b71Sopenharmony_ci
489e41f4b71Sopenharmony_ciObtains the application context.
490e41f4b71Sopenharmony_ci
491e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11.
492e41f4b71Sopenharmony_ci
493e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Ability.AbilityRuntime.Core
494e41f4b71Sopenharmony_ci
495e41f4b71Sopenharmony_ci**Return value**
496e41f4b71Sopenharmony_ci
497e41f4b71Sopenharmony_ci| Type                                 | Description                                       |
498e41f4b71Sopenharmony_ci| ------------------------------------- | ------------------------------------------- |
499e41f4b71Sopenharmony_ci| [Context](../apis-ability-kit/js-apis-inner-application-context.md) | [Context](../apis-ability-kit/js-apis-inner-application-context.md).|
500e41f4b71Sopenharmony_ci
501e41f4b71Sopenharmony_ci**Example**
502e41f4b71Sopenharmony_ci
503e41f4b71Sopenharmony_ci```ts
504e41f4b71Sopenharmony_ciimport { abilityDelegatorRegistry } from '@kit.TestKit';
505e41f4b71Sopenharmony_ci
506e41f4b71Sopenharmony_cilet abilityDelegator: abilityDelegatorRegistry.AbilityDelegator;
507e41f4b71Sopenharmony_ci
508e41f4b71Sopenharmony_ciabilityDelegator = abilityDelegatorRegistry.getAbilityDelegator();
509e41f4b71Sopenharmony_ci
510e41f4b71Sopenharmony_cilet context = abilityDelegator.getAppContext();
511e41f4b71Sopenharmony_ci```
512e41f4b71Sopenharmony_ci
513e41f4b71Sopenharmony_ci### getAbilityState<sup>9+</sup>
514e41f4b71Sopenharmony_ci
515e41f4b71Sopenharmony_cigetAbilityState(ability: UIAbility): number
516e41f4b71Sopenharmony_ci
517e41f4b71Sopenharmony_ciObtains the lifecycle state of an ability.
518e41f4b71Sopenharmony_ci
519e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11.
520e41f4b71Sopenharmony_ci
521e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Ability.AbilityRuntime.Core
522e41f4b71Sopenharmony_ci
523e41f4b71Sopenharmony_ci**Parameters**
524e41f4b71Sopenharmony_ci
525e41f4b71Sopenharmony_ci| Name | Type                                             | Mandatory| Description           |
526e41f4b71Sopenharmony_ci| ------- | ------------------------------------------------- | ---- | --------------- |
527e41f4b71Sopenharmony_ci| ability | [UIAbility](../apis-ability-kit/js-apis-app-ability-uiAbility.md) | Yes  | Target ability.|
528e41f4b71Sopenharmony_ci
529e41f4b71Sopenharmony_ci**Return value**
530e41f4b71Sopenharmony_ci
531e41f4b71Sopenharmony_ci| Type  | Description                                                        |
532e41f4b71Sopenharmony_ci| ------ | ------------------------------------------------------------ |
533e41f4b71Sopenharmony_ci| number | Lifecycle state of the ability, which is defined by **AbilityLifecycleState**.|
534e41f4b71Sopenharmony_ci
535e41f4b71Sopenharmony_ci**Error codes**
536e41f4b71Sopenharmony_ci
537e41f4b71Sopenharmony_ciFor details about the error codes, see [Universal Error Codes](../errorcode-universal.md).
538e41f4b71Sopenharmony_ci
539e41f4b71Sopenharmony_ci| ID| Error Message|
540e41f4b71Sopenharmony_ci| ------- | -------- |
541e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. |
542e41f4b71Sopenharmony_ci
543e41f4b71Sopenharmony_ci**Example**
544e41f4b71Sopenharmony_ci
545e41f4b71Sopenharmony_ci```ts
546e41f4b71Sopenharmony_ciimport { abilityDelegatorRegistry } from '@kit.TestKit';
547e41f4b71Sopenharmony_ciimport { UIAbility } from '@kit.AbilityKit';
548e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
549e41f4b71Sopenharmony_ci
550e41f4b71Sopenharmony_cilet abilityDelegator: abilityDelegatorRegistry.AbilityDelegator;
551e41f4b71Sopenharmony_cilet ability: UIAbility;
552e41f4b71Sopenharmony_ci
553e41f4b71Sopenharmony_ciabilityDelegator = abilityDelegatorRegistry.getAbilityDelegator();
554e41f4b71Sopenharmony_ciabilityDelegator.getCurrentTopAbility((err: BusinessError, data: UIAbility) => {
555e41f4b71Sopenharmony_ci  console.info('getCurrentTopAbility callback');
556e41f4b71Sopenharmony_ci  ability = data;
557e41f4b71Sopenharmony_ci  let state = abilityDelegator.getAbilityState(ability);
558e41f4b71Sopenharmony_ci  console.info('getAbilityState ${state}');
559e41f4b71Sopenharmony_ci});
560e41f4b71Sopenharmony_ci```
561e41f4b71Sopenharmony_ci
562e41f4b71Sopenharmony_ci### getCurrentTopAbility<sup>9+</sup>
563e41f4b71Sopenharmony_ci
564e41f4b71Sopenharmony_cigetCurrentTopAbility(callback: AsyncCallback\<UIAbility>): void
565e41f4b71Sopenharmony_ci
566e41f4b71Sopenharmony_ciObtains the top ability of this application. This API uses an asynchronous callback to return the result. It cannot be called in the worker thread.
567e41f4b71Sopenharmony_ci
568e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11.
569e41f4b71Sopenharmony_ci
570e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Ability.AbilityRuntime.Core
571e41f4b71Sopenharmony_ci
572e41f4b71Sopenharmony_ci**Parameters**
573e41f4b71Sopenharmony_ci
574e41f4b71Sopenharmony_ci| Name  | Type                                                        | Mandatory| Description              |
575e41f4b71Sopenharmony_ci| -------- | ------------------------------------------------------------ | ---- | ------------------ |
576e41f4b71Sopenharmony_ci| callback | AsyncCallback\<[UIAbility](../apis-ability-kit/js-apis-app-ability-uiAbility.md)> | Yes  | Callback used to return the result. If the top ability is obtained, **err** is **undefined** and **data** is the **Ability** instance obtained. Otherwise, **err** is an error object.|
577e41f4b71Sopenharmony_ci
578e41f4b71Sopenharmony_ci**Error codes**
579e41f4b71Sopenharmony_ci
580e41f4b71Sopenharmony_ciFor details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Ability Error Codes](../apis-ability-kit/errorcode-ability.md).
581e41f4b71Sopenharmony_ci
582e41f4b71Sopenharmony_ci| ID| Error Message|
583e41f4b71Sopenharmony_ci| ------- | -------- |
584e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. |
585e41f4b71Sopenharmony_ci| 16000100 | GetCurrentTopAbility failed. |
586e41f4b71Sopenharmony_ci
587e41f4b71Sopenharmony_ci**Example**
588e41f4b71Sopenharmony_ci
589e41f4b71Sopenharmony_ci```ts
590e41f4b71Sopenharmony_ciimport { abilityDelegatorRegistry } from '@kit.TestKit';
591e41f4b71Sopenharmony_ciimport { UIAbility } from '@kit.AbilityKit';
592e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
593e41f4b71Sopenharmony_ci
594e41f4b71Sopenharmony_cilet abilityDelegator: abilityDelegatorRegistry.AbilityDelegator;
595e41f4b71Sopenharmony_cilet ability: UIAbility;
596e41f4b71Sopenharmony_ci
597e41f4b71Sopenharmony_ciabilityDelegator = abilityDelegatorRegistry.getAbilityDelegator();
598e41f4b71Sopenharmony_ciabilityDelegator.getCurrentTopAbility((err: BusinessError, data: UIAbility) => {
599e41f4b71Sopenharmony_ci  console.info('getCurrentTopAbility callback');
600e41f4b71Sopenharmony_ci  ability = data;
601e41f4b71Sopenharmony_ci});
602e41f4b71Sopenharmony_ci```
603e41f4b71Sopenharmony_ci
604e41f4b71Sopenharmony_ci### getCurrentTopAbility<sup>9+</sup>
605e41f4b71Sopenharmony_ci
606e41f4b71Sopenharmony_cigetCurrentTopAbility(): Promise\<UIAbility>
607e41f4b71Sopenharmony_ci
608e41f4b71Sopenharmony_ciObtains the top ability of this application. This API uses a promise to return the result. It cannot be called in the worker thread.
609e41f4b71Sopenharmony_ci
610e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11.
611e41f4b71Sopenharmony_ci
612e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Ability.AbilityRuntime.Core
613e41f4b71Sopenharmony_ci
614e41f4b71Sopenharmony_ci**Return value**
615e41f4b71Sopenharmony_ci
616e41f4b71Sopenharmony_ci| Type                                                       | Description                                  |
617e41f4b71Sopenharmony_ci| ----------------------------------------------------------- | -------------------------------------- |
618e41f4b71Sopenharmony_ci| Promise\<[UIAbility](../apis-ability-kit/js-apis-app-ability-uiAbility.md)> | Promise used to return the top ability.|
619e41f4b71Sopenharmony_ci
620e41f4b71Sopenharmony_ci**Error codes**
621e41f4b71Sopenharmony_ci
622e41f4b71Sopenharmony_ciFor details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Ability Error Codes](../apis-ability-kit/errorcode-ability.md).
623e41f4b71Sopenharmony_ci
624e41f4b71Sopenharmony_ci| ID| Error Message|
625e41f4b71Sopenharmony_ci| ------- | -------- |
626e41f4b71Sopenharmony_ci| 16000100 | GetCurrentTopAbility failed. |
627e41f4b71Sopenharmony_ci
628e41f4b71Sopenharmony_ci**Example**
629e41f4b71Sopenharmony_ci
630e41f4b71Sopenharmony_ci```ts
631e41f4b71Sopenharmony_ciimport { abilityDelegatorRegistry } from '@kit.TestKit';
632e41f4b71Sopenharmony_ciimport { UIAbility } from '@kit.AbilityKit';
633e41f4b71Sopenharmony_ci
634e41f4b71Sopenharmony_cilet abilityDelegator: abilityDelegatorRegistry.AbilityDelegator;
635e41f4b71Sopenharmony_cilet ability: UIAbility;
636e41f4b71Sopenharmony_ci
637e41f4b71Sopenharmony_ciabilityDelegator = abilityDelegatorRegistry.getAbilityDelegator();
638e41f4b71Sopenharmony_ciabilityDelegator.getCurrentTopAbility().then((data: UIAbility) => {
639e41f4b71Sopenharmony_ci  console.info('getCurrentTopAbility promise');
640e41f4b71Sopenharmony_ci  ability = data;
641e41f4b71Sopenharmony_ci});
642e41f4b71Sopenharmony_ci```
643e41f4b71Sopenharmony_ci
644e41f4b71Sopenharmony_ci### startAbility<sup>9+</sup>
645e41f4b71Sopenharmony_ci
646e41f4b71Sopenharmony_cistartAbility(want: Want, callback: AsyncCallback\<void>): void
647e41f4b71Sopenharmony_ci
648e41f4b71Sopenharmony_ciStarts an ability. This API uses an asynchronous callback to return the result.
649e41f4b71Sopenharmony_ci
650e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11.
651e41f4b71Sopenharmony_ci
652e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Ability.AbilityRuntime.Core
653e41f4b71Sopenharmony_ci
654e41f4b71Sopenharmony_ci**Parameters**
655e41f4b71Sopenharmony_ci
656e41f4b71Sopenharmony_ci| Name  | Type                                  | Mandatory| Description              |
657e41f4b71Sopenharmony_ci| -------- | -------------------------------------- | ---- | ------------------ |
658e41f4b71Sopenharmony_ci| want     | [Want](../apis-ability-kit/js-apis-app-ability-want.md) | Yes  | **Want** parameter for starting the ability.   |
659e41f4b71Sopenharmony_ci| callback | AsyncCallback\<void>                   | Yes  | Callback used to return the result. If the ability is started, **err** is **undefined**. Otherwise, **err** is an error object.|
660e41f4b71Sopenharmony_ci
661e41f4b71Sopenharmony_ci**Error codes**
662e41f4b71Sopenharmony_ci
663e41f4b71Sopenharmony_ciFor details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Ability Error Codes](../apis-ability-kit/errorcode-ability.md).
664e41f4b71Sopenharmony_ci
665e41f4b71Sopenharmony_ci| ID| Error Message|
666e41f4b71Sopenharmony_ci| ------- | -------- |
667e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. |
668e41f4b71Sopenharmony_ci| 16000001 | The specified ability does not exist. |
669e41f4b71Sopenharmony_ci| 16000002 | Incorrect ability type. |
670e41f4b71Sopenharmony_ci| 16000004 | Can not start invisible component. |
671e41f4b71Sopenharmony_ci| 16000005 | The specified process does not have the permission. |
672e41f4b71Sopenharmony_ci| 16000006 | Cross-user operations are not allowed. |
673e41f4b71Sopenharmony_ci| 16000008 | The crowdtesting application expires. |
674e41f4b71Sopenharmony_ci| 16000009 | An ability cannot be started or stopped in Wukong mode. |
675e41f4b71Sopenharmony_ci| 16000010 | The call with the continuation flag is forbidden. |
676e41f4b71Sopenharmony_ci| 16000011 | The context does not exist. |
677e41f4b71Sopenharmony_ci| 16000012 | The application is controlled. |
678e41f4b71Sopenharmony_ci| 16000013 | The application is controlled by EDM. |
679e41f4b71Sopenharmony_ci| 16000050 | Internal error. |
680e41f4b71Sopenharmony_ci| 16000053 | The ability is not on the top of the UI. |
681e41f4b71Sopenharmony_ci| 16000055 | Installation-free timed out. |
682e41f4b71Sopenharmony_ci| 16200001 | The caller has been released. |
683e41f4b71Sopenharmony_ci
684e41f4b71Sopenharmony_ci**Example**
685e41f4b71Sopenharmony_ci
686e41f4b71Sopenharmony_ci```ts
687e41f4b71Sopenharmony_ciimport { abilityDelegatorRegistry } from '@kit.TestKit';
688e41f4b71Sopenharmony_ciimport { Want } from '@kit.AbilityKit';
689e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
690e41f4b71Sopenharmony_ci
691e41f4b71Sopenharmony_cilet abilityDelegator: abilityDelegatorRegistry.AbilityDelegator;
692e41f4b71Sopenharmony_cilet want: Want = {
693e41f4b71Sopenharmony_ci  bundleName: 'bundleName',
694e41f4b71Sopenharmony_ci  abilityName: 'abilityName'
695e41f4b71Sopenharmony_ci};
696e41f4b71Sopenharmony_ci
697e41f4b71Sopenharmony_ciabilityDelegator = abilityDelegatorRegistry.getAbilityDelegator();
698e41f4b71Sopenharmony_ciabilityDelegator.startAbility(want, (err: BusinessError, data: void) => {
699e41f4b71Sopenharmony_ci  console.info('startAbility callback');
700e41f4b71Sopenharmony_ci});
701e41f4b71Sopenharmony_ci```
702e41f4b71Sopenharmony_ci
703e41f4b71Sopenharmony_ci### startAbility<sup>9+</sup>
704e41f4b71Sopenharmony_ci
705e41f4b71Sopenharmony_cistartAbility(want: Want): Promise\<void>
706e41f4b71Sopenharmony_ci
707e41f4b71Sopenharmony_ciStarts an ability. This API uses a promise to return the result.
708e41f4b71Sopenharmony_ci
709e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11.
710e41f4b71Sopenharmony_ci
711e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Ability.AbilityRuntime.Core
712e41f4b71Sopenharmony_ci
713e41f4b71Sopenharmony_ci**Parameters**
714e41f4b71Sopenharmony_ci
715e41f4b71Sopenharmony_ci| Name| Type                                  | Mandatory| Description           |
716e41f4b71Sopenharmony_ci| ------ | -------------------------------------- | ---- | --------------- |
717e41f4b71Sopenharmony_ci| want   | [Want](../apis-ability-kit/js-apis-app-ability-want.md) | Yes  | **Want** parameter for starting the ability.|
718e41f4b71Sopenharmony_ci
719e41f4b71Sopenharmony_ci**Return value**
720e41f4b71Sopenharmony_ci
721e41f4b71Sopenharmony_ci| Type          | Description               |
722e41f4b71Sopenharmony_ci| -------------- | ------------------- |
723e41f4b71Sopenharmony_ci| Promise\<void> | Promise that returns no value.|
724e41f4b71Sopenharmony_ci
725e41f4b71Sopenharmony_ci**Error codes**
726e41f4b71Sopenharmony_ci
727e41f4b71Sopenharmony_ciFor details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Ability Error Codes](../apis-ability-kit/errorcode-ability.md).
728e41f4b71Sopenharmony_ci
729e41f4b71Sopenharmony_ci| ID| Error Message|
730e41f4b71Sopenharmony_ci| ------- | -------- |
731e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. |
732e41f4b71Sopenharmony_ci| 16000001 | The specified ability does not exist. |
733e41f4b71Sopenharmony_ci| 16000002 | Incorrect ability type. |
734e41f4b71Sopenharmony_ci| 16000004 | Can not start invisible component. |
735e41f4b71Sopenharmony_ci| 16000005 | The specified process does not have the permission. |
736e41f4b71Sopenharmony_ci| 16000006 | Cross-user operations are not allowed. |
737e41f4b71Sopenharmony_ci| 16000008 | The crowdtesting application expires. |
738e41f4b71Sopenharmony_ci| 16000009 | An ability cannot be started or stopped in Wukong mode. |
739e41f4b71Sopenharmony_ci| 16000010 | The call with the continuation flag is forbidden. |
740e41f4b71Sopenharmony_ci| 16000011 | The context does not exist. |
741e41f4b71Sopenharmony_ci| 16000012 | The application is controlled. |
742e41f4b71Sopenharmony_ci| 16000013 | The application is controlled by EDM. |
743e41f4b71Sopenharmony_ci| 16000050 | Internal error. |
744e41f4b71Sopenharmony_ci| 16000053 | The ability is not on the top of the UI. |
745e41f4b71Sopenharmony_ci| 16000055 | Installation-free timed out. |
746e41f4b71Sopenharmony_ci| 16200001 | The caller has been released. |
747e41f4b71Sopenharmony_ci
748e41f4b71Sopenharmony_ci**Example**
749e41f4b71Sopenharmony_ci
750e41f4b71Sopenharmony_ci```ts
751e41f4b71Sopenharmony_ciimport { abilityDelegatorRegistry } from '@kit.TestKit';
752e41f4b71Sopenharmony_ciimport { Want } from '@kit.AbilityKit';
753e41f4b71Sopenharmony_ci
754e41f4b71Sopenharmony_cilet abilityDelegator: abilityDelegatorRegistry.AbilityDelegator;
755e41f4b71Sopenharmony_cilet want: Want = {
756e41f4b71Sopenharmony_ci  bundleName: 'bundleName',
757e41f4b71Sopenharmony_ci  abilityName: 'abilityName'
758e41f4b71Sopenharmony_ci};
759e41f4b71Sopenharmony_ci
760e41f4b71Sopenharmony_ciabilityDelegator = abilityDelegatorRegistry.getAbilityDelegator();
761e41f4b71Sopenharmony_ciabilityDelegator.startAbility(want).then((data: void) => {
762e41f4b71Sopenharmony_ci  console.info('startAbility promise');
763e41f4b71Sopenharmony_ci});
764e41f4b71Sopenharmony_ci```
765e41f4b71Sopenharmony_ci
766e41f4b71Sopenharmony_ci### doAbilityForeground<sup>9+</sup>
767e41f4b71Sopenharmony_ci
768e41f4b71Sopenharmony_cidoAbilityForeground(ability: UIAbility, callback: AsyncCallback\<void>): void
769e41f4b71Sopenharmony_ci
770e41f4b71Sopenharmony_ciSchedules the lifecycle state of an ability to **Foreground**. This API uses an asynchronous callback to return the result.
771e41f4b71Sopenharmony_ci
772e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11.
773e41f4b71Sopenharmony_ci
774e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Ability.AbilityRuntime.Core
775e41f4b71Sopenharmony_ci
776e41f4b71Sopenharmony_ci**Parameters**
777e41f4b71Sopenharmony_ci
778e41f4b71Sopenharmony_ci| Name  | Type                   | Mandatory| Description                                                   |
779e41f4b71Sopenharmony_ci| -------- | ----------------------- | ---- | ------------------------------------------------------- |
780e41f4b71Sopenharmony_ci| ability  | UIAbility               | Yes  | Target ability.                                        |
781e41f4b71Sopenharmony_ci| callback | AsyncCallback\<void>    | Yes  | Callback used to return the result. If the ability lifecycle state is changed to **Foreground**, **err** is **undefined**. Otherwise, **err** is an error object. |
782e41f4b71Sopenharmony_ci
783e41f4b71Sopenharmony_ci**Error codes**
784e41f4b71Sopenharmony_ci
785e41f4b71Sopenharmony_ciFor details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Ability Error Codes](../apis-ability-kit/errorcode-ability.md).
786e41f4b71Sopenharmony_ci
787e41f4b71Sopenharmony_ci| ID| Error Message|
788e41f4b71Sopenharmony_ci| ------- | -------- |
789e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. |
790e41f4b71Sopenharmony_ci| 16000100 | DoAbilityForeground failed. |
791e41f4b71Sopenharmony_ci
792e41f4b71Sopenharmony_ci**Example**
793e41f4b71Sopenharmony_ci
794e41f4b71Sopenharmony_ci```ts
795e41f4b71Sopenharmony_ciimport { abilityDelegatorRegistry } from '@kit.TestKit';
796e41f4b71Sopenharmony_ciimport { UIAbility } from '@kit.AbilityKit';
797e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
798e41f4b71Sopenharmony_ci
799e41f4b71Sopenharmony_cilet abilityDelegator: abilityDelegatorRegistry.AbilityDelegator;
800e41f4b71Sopenharmony_cilet ability: UIAbility;
801e41f4b71Sopenharmony_ci
802e41f4b71Sopenharmony_ciabilityDelegator = abilityDelegatorRegistry.getAbilityDelegator();
803e41f4b71Sopenharmony_ciabilityDelegator.getCurrentTopAbility((err: BusinessError, data: UIAbility) => {
804e41f4b71Sopenharmony_ci  console.info('getCurrentTopAbility callback');
805e41f4b71Sopenharmony_ci  ability = data;
806e41f4b71Sopenharmony_ci  abilityDelegator.doAbilityForeground(ability, (err: BusinessError) => {
807e41f4b71Sopenharmony_ci    console.info("doAbilityForeground callback");
808e41f4b71Sopenharmony_ci  });
809e41f4b71Sopenharmony_ci});
810e41f4b71Sopenharmony_ci```
811e41f4b71Sopenharmony_ci
812e41f4b71Sopenharmony_ci### doAbilityForeground<sup>9+</sup>
813e41f4b71Sopenharmony_ci
814e41f4b71Sopenharmony_cidoAbilityForeground(ability: UIAbility): Promise\<void>
815e41f4b71Sopenharmony_ci
816e41f4b71Sopenharmony_ciSchedules the lifecycle state of an ability to **Foreground**. This API uses a promise to return the result.
817e41f4b71Sopenharmony_ci
818e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11.
819e41f4b71Sopenharmony_ci
820e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Ability.AbilityRuntime.Core
821e41f4b71Sopenharmony_ci
822e41f4b71Sopenharmony_ci**Parameters**
823e41f4b71Sopenharmony_ci
824e41f4b71Sopenharmony_ci| Name | Type   | Mandatory| Description           |
825e41f4b71Sopenharmony_ci| ------- | ------- | ---- | --------------- |
826e41f4b71Sopenharmony_ci| ability | UIAbility | Yes  | Target ability.|
827e41f4b71Sopenharmony_ci
828e41f4b71Sopenharmony_ci**Return value**
829e41f4b71Sopenharmony_ci
830e41f4b71Sopenharmony_ci| Type             | Description                                                        |
831e41f4b71Sopenharmony_ci| ----------------- | ------------------------------------------------------------ |
832e41f4b71Sopenharmony_ci| Promise\<void> | Promise that returns no value.        |
833e41f4b71Sopenharmony_ci
834e41f4b71Sopenharmony_ci**Error codes**
835e41f4b71Sopenharmony_ci
836e41f4b71Sopenharmony_ciFor details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Ability Error Codes](../apis-ability-kit/errorcode-ability.md).
837e41f4b71Sopenharmony_ci
838e41f4b71Sopenharmony_ci| ID| Error Message|
839e41f4b71Sopenharmony_ci| ------- | -------- |
840e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. |
841e41f4b71Sopenharmony_ci| 16000100 | DoAbilityForeground failed. |
842e41f4b71Sopenharmony_ci
843e41f4b71Sopenharmony_ci**Example**
844e41f4b71Sopenharmony_ci
845e41f4b71Sopenharmony_ci```ts
846e41f4b71Sopenharmony_ciimport { abilityDelegatorRegistry } from '@kit.TestKit';
847e41f4b71Sopenharmony_ciimport { UIAbility } from '@kit.AbilityKit';
848e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
849e41f4b71Sopenharmony_ci
850e41f4b71Sopenharmony_cilet abilityDelegator: abilityDelegatorRegistry.AbilityDelegator;
851e41f4b71Sopenharmony_cilet ability: UIAbility;
852e41f4b71Sopenharmony_ci
853e41f4b71Sopenharmony_ciabilityDelegator = abilityDelegatorRegistry.getAbilityDelegator();
854e41f4b71Sopenharmony_ciabilityDelegator.getCurrentTopAbility((err: BusinessError, data: UIAbility) => {
855e41f4b71Sopenharmony_ci  console.info('getCurrentTopAbility callback');
856e41f4b71Sopenharmony_ci  ability = data;
857e41f4b71Sopenharmony_ci  abilityDelegator.doAbilityForeground(ability).then(() => {
858e41f4b71Sopenharmony_ci    console.info("doAbilityForeground promise");
859e41f4b71Sopenharmony_ci  });
860e41f4b71Sopenharmony_ci});
861e41f4b71Sopenharmony_ci```
862e41f4b71Sopenharmony_ci
863e41f4b71Sopenharmony_ci### doAbilityBackground<sup>9+</sup>
864e41f4b71Sopenharmony_ci
865e41f4b71Sopenharmony_cidoAbilityBackground(ability: UIAbility, callback: AsyncCallback\<void>): void
866e41f4b71Sopenharmony_ci
867e41f4b71Sopenharmony_ciSchedules the lifecycle state of an ability to **Background**. This API uses an asynchronous callback to return the result.
868e41f4b71Sopenharmony_ci
869e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11.
870e41f4b71Sopenharmony_ci
871e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Ability.AbilityRuntime.Core
872e41f4b71Sopenharmony_ci
873e41f4b71Sopenharmony_ci**Parameters**
874e41f4b71Sopenharmony_ci
875e41f4b71Sopenharmony_ci| Name  | Type                   | Mandatory| Description                                                   |
876e41f4b71Sopenharmony_ci| -------- | ----------------------- | ---- | ------------------------------------------------------- |
877e41f4b71Sopenharmony_ci| ability  | UIAbility                 | Yes  | Target ability.                                        |
878e41f4b71Sopenharmony_ci| callback | AsyncCallback\<void> | Yes  | Callback used to return the result. If the ability lifecycle state is changed to **Background**, **err** is **undefined**. Otherwise, **err** is an error object. |
879e41f4b71Sopenharmony_ci
880e41f4b71Sopenharmony_ci**Error codes**
881e41f4b71Sopenharmony_ci
882e41f4b71Sopenharmony_ciFor details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Ability Error Codes](../apis-ability-kit/errorcode-ability.md).
883e41f4b71Sopenharmony_ci
884e41f4b71Sopenharmony_ci| ID| Error Message|
885e41f4b71Sopenharmony_ci| ------- | -------- |
886e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. |
887e41f4b71Sopenharmony_ci| 16000100 | DoAbilityBackground failed. |
888e41f4b71Sopenharmony_ci
889e41f4b71Sopenharmony_ci**Example**
890e41f4b71Sopenharmony_ci
891e41f4b71Sopenharmony_ci```ts
892e41f4b71Sopenharmony_ciimport { abilityDelegatorRegistry } from '@kit.TestKit';
893e41f4b71Sopenharmony_ciimport { UIAbility } from '@kit.AbilityKit';
894e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
895e41f4b71Sopenharmony_ci
896e41f4b71Sopenharmony_cilet abilityDelegator: abilityDelegatorRegistry.AbilityDelegator;
897e41f4b71Sopenharmony_cilet ability: UIAbility;
898e41f4b71Sopenharmony_ci
899e41f4b71Sopenharmony_ciabilityDelegator = abilityDelegatorRegistry.getAbilityDelegator();
900e41f4b71Sopenharmony_ciabilityDelegator.getCurrentTopAbility((err: BusinessError, data: UIAbility) => {
901e41f4b71Sopenharmony_ci  console.info('getCurrentTopAbility callback');
902e41f4b71Sopenharmony_ci  ability = data;
903e41f4b71Sopenharmony_ci  abilityDelegator.doAbilityBackground(ability, (err: BusinessError) => {
904e41f4b71Sopenharmony_ci    console.info("doAbilityBackground callback");
905e41f4b71Sopenharmony_ci  });
906e41f4b71Sopenharmony_ci});
907e41f4b71Sopenharmony_ci```
908e41f4b71Sopenharmony_ci
909e41f4b71Sopenharmony_ci### doAbilityBackground<sup>9+</sup>
910e41f4b71Sopenharmony_ci
911e41f4b71Sopenharmony_cidoAbilityBackground(ability: UIAbility): Promise\<void>
912e41f4b71Sopenharmony_ci
913e41f4b71Sopenharmony_ciSchedules the lifecycle state of an ability to **Background**. This API uses a promise to return the result.
914e41f4b71Sopenharmony_ci
915e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11.
916e41f4b71Sopenharmony_ci
917e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Ability.AbilityRuntime.Core
918e41f4b71Sopenharmony_ci
919e41f4b71Sopenharmony_ci**Parameters**
920e41f4b71Sopenharmony_ci
921e41f4b71Sopenharmony_ci| Name | Type   | Mandatory| Description           |
922e41f4b71Sopenharmony_ci| ------- | ------- | ---- | --------------- |
923e41f4b71Sopenharmony_ci| ability | UIAbility | Yes  | Target ability.|
924e41f4b71Sopenharmony_ci
925e41f4b71Sopenharmony_ci**Return value**
926e41f4b71Sopenharmony_ci
927e41f4b71Sopenharmony_ci| Type             | Description                                                        |
928e41f4b71Sopenharmony_ci| ----------------- | ------------------------------------------------------------ |
929e41f4b71Sopenharmony_ci| Promise\<void> | Promise that returns no value.                           |
930e41f4b71Sopenharmony_ci
931e41f4b71Sopenharmony_ci**Error codes**
932e41f4b71Sopenharmony_ci
933e41f4b71Sopenharmony_ciFor details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Ability Error Codes](../apis-ability-kit/errorcode-ability.md).
934e41f4b71Sopenharmony_ci
935e41f4b71Sopenharmony_ci| ID| Error Message|
936e41f4b71Sopenharmony_ci| ------- | -------- |
937e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. |
938e41f4b71Sopenharmony_ci| 16000100 | DoAbilityBackground failed. |
939e41f4b71Sopenharmony_ci
940e41f4b71Sopenharmony_ci**Example**
941e41f4b71Sopenharmony_ci
942e41f4b71Sopenharmony_ci```ts
943e41f4b71Sopenharmony_ciimport { abilityDelegatorRegistry } from '@kit.TestKit';
944e41f4b71Sopenharmony_ciimport { UIAbility } from '@kit.AbilityKit';
945e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
946e41f4b71Sopenharmony_ci
947e41f4b71Sopenharmony_cilet abilityDelegator: abilityDelegatorRegistry.AbilityDelegator;
948e41f4b71Sopenharmony_cilet ability: UIAbility;
949e41f4b71Sopenharmony_ci
950e41f4b71Sopenharmony_ciabilityDelegator = abilityDelegatorRegistry.getAbilityDelegator();
951e41f4b71Sopenharmony_ciabilityDelegator.getCurrentTopAbility((err: BusinessError, data: UIAbility) => {
952e41f4b71Sopenharmony_ci  console.info('getCurrentTopAbility callback');
953e41f4b71Sopenharmony_ci  ability = data;
954e41f4b71Sopenharmony_ci  abilityDelegator.doAbilityBackground(ability).then(() => {
955e41f4b71Sopenharmony_ci    console.info("doAbilityBackground promise");
956e41f4b71Sopenharmony_ci  });
957e41f4b71Sopenharmony_ci});
958e41f4b71Sopenharmony_ci```
959e41f4b71Sopenharmony_ci
960e41f4b71Sopenharmony_ci### printSync<sup>9+</sup>
961e41f4b71Sopenharmony_ci
962e41f4b71Sopenharmony_ciprintSync(msg: string): void
963e41f4b71Sopenharmony_ci
964e41f4b71Sopenharmony_ciPrints log information to the unit test console.
965e41f4b71Sopenharmony_ci
966e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11.
967e41f4b71Sopenharmony_ci
968e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Ability.AbilityRuntime.Core
969e41f4b71Sopenharmony_ci
970e41f4b71Sopenharmony_ci**Parameters**
971e41f4b71Sopenharmony_ci
972e41f4b71Sopenharmony_ci| Name| Type  | Mandatory| Description      |
973e41f4b71Sopenharmony_ci| ------ | ------ | ---- | ---------- |
974e41f4b71Sopenharmony_ci| msg    | string | Yes  | Log string.|
975e41f4b71Sopenharmony_ci
976e41f4b71Sopenharmony_ci**Error codes**
977e41f4b71Sopenharmony_ci
978e41f4b71Sopenharmony_ciFor details about the error codes, see [Universal Error Codes](../errorcode-universal.md).
979e41f4b71Sopenharmony_ci
980e41f4b71Sopenharmony_ci| ID| Error Message|
981e41f4b71Sopenharmony_ci| ------- | -------- |
982e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. |
983e41f4b71Sopenharmony_ci
984e41f4b71Sopenharmony_ci**Example**
985e41f4b71Sopenharmony_ci
986e41f4b71Sopenharmony_ci```ts
987e41f4b71Sopenharmony_ciimport { abilityDelegatorRegistry } from '@kit.TestKit';
988e41f4b71Sopenharmony_ci
989e41f4b71Sopenharmony_cilet abilityDelegator: abilityDelegatorRegistry.AbilityDelegator;
990e41f4b71Sopenharmony_cilet msg = 'msg';
991e41f4b71Sopenharmony_ci
992e41f4b71Sopenharmony_ciabilityDelegator = abilityDelegatorRegistry.getAbilityDelegator();
993e41f4b71Sopenharmony_ciabilityDelegator.printSync(msg);
994e41f4b71Sopenharmony_ci```
995e41f4b71Sopenharmony_ci
996e41f4b71Sopenharmony_ci### print
997e41f4b71Sopenharmony_ci
998e41f4b71Sopenharmony_ciprint(msg: string, callback: AsyncCallback\<void>): void
999e41f4b71Sopenharmony_ci
1000e41f4b71Sopenharmony_ciPrints log information to the unit test console. This API uses an asynchronous callback to return the result.
1001e41f4b71Sopenharmony_ci
1002e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11.
1003e41f4b71Sopenharmony_ci
1004e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Ability.AbilityRuntime.Core
1005e41f4b71Sopenharmony_ci
1006e41f4b71Sopenharmony_ci**Parameters**
1007e41f4b71Sopenharmony_ci
1008e41f4b71Sopenharmony_ci| Name  | Type                | Mandatory| Description              |
1009e41f4b71Sopenharmony_ci| -------- | -------------------- | ---- | ------------------ |
1010e41f4b71Sopenharmony_ci| msg      | string               | Yes  | Log string.        |
1011e41f4b71Sopenharmony_ci| callback | AsyncCallback\<void> | Yes  | Callback used to return the result. If the log information is printed to the unit test console, **err** is **undefined**. Otherwise, **err** is an error object.|
1012e41f4b71Sopenharmony_ci
1013e41f4b71Sopenharmony_ci**Example**
1014e41f4b71Sopenharmony_ci
1015e41f4b71Sopenharmony_ci```ts
1016e41f4b71Sopenharmony_ciimport { abilityDelegatorRegistry } from '@kit.TestKit';
1017e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
1018e41f4b71Sopenharmony_ci
1019e41f4b71Sopenharmony_cilet abilityDelegator: abilityDelegatorRegistry.AbilityDelegator;
1020e41f4b71Sopenharmony_cilet msg = 'msg';
1021e41f4b71Sopenharmony_ci
1022e41f4b71Sopenharmony_ciabilityDelegator = abilityDelegatorRegistry.getAbilityDelegator();
1023e41f4b71Sopenharmony_ciabilityDelegator.print(msg, (err: BusinessError) => {
1024e41f4b71Sopenharmony_ci  console.info('print callback');
1025e41f4b71Sopenharmony_ci});
1026e41f4b71Sopenharmony_ci```
1027e41f4b71Sopenharmony_ci
1028e41f4b71Sopenharmony_ci### print
1029e41f4b71Sopenharmony_ci
1030e41f4b71Sopenharmony_ciprint(msg: string): Promise\<void>
1031e41f4b71Sopenharmony_ci
1032e41f4b71Sopenharmony_ciPrints log information to the unit test console. This API uses a promise to return the result.
1033e41f4b71Sopenharmony_ci
1034e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11.
1035e41f4b71Sopenharmony_ci
1036e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Ability.AbilityRuntime.Core
1037e41f4b71Sopenharmony_ci
1038e41f4b71Sopenharmony_ci**Parameters**
1039e41f4b71Sopenharmony_ci
1040e41f4b71Sopenharmony_ci| Name| Type  | Mandatory| Description      |
1041e41f4b71Sopenharmony_ci| ------ | ------ | ---- | ---------- |
1042e41f4b71Sopenharmony_ci| msg    | string | Yes  | Log string.|
1043e41f4b71Sopenharmony_ci
1044e41f4b71Sopenharmony_ci**Return value**
1045e41f4b71Sopenharmony_ci
1046e41f4b71Sopenharmony_ci| Type          | Description               |
1047e41f4b71Sopenharmony_ci| -------------- | ------------------- |
1048e41f4b71Sopenharmony_ci| Promise\<void> |Promise that returns no value.|
1049e41f4b71Sopenharmony_ci
1050e41f4b71Sopenharmony_ci**Example**
1051e41f4b71Sopenharmony_ci
1052e41f4b71Sopenharmony_ci```ts
1053e41f4b71Sopenharmony_ciimport { abilityDelegatorRegistry } from '@kit.TestKit';
1054e41f4b71Sopenharmony_ci
1055e41f4b71Sopenharmony_cilet abilityDelegator: abilityDelegatorRegistry.AbilityDelegator;
1056e41f4b71Sopenharmony_cilet msg = 'msg';
1057e41f4b71Sopenharmony_ci
1058e41f4b71Sopenharmony_ciabilityDelegator = abilityDelegatorRegistry.getAbilityDelegator();
1059e41f4b71Sopenharmony_ciabilityDelegator.print(msg).then(() => {
1060e41f4b71Sopenharmony_ci  console.info('print promise');
1061e41f4b71Sopenharmony_ci});
1062e41f4b71Sopenharmony_ci```
1063e41f4b71Sopenharmony_ci
1064e41f4b71Sopenharmony_ci### executeShellCommand
1065e41f4b71Sopenharmony_ci
1066e41f4b71Sopenharmony_ciexecuteShellCommand(cmd: string, callback: AsyncCallback\<ShellCmdResult>): void
1067e41f4b71Sopenharmony_ci
1068e41f4b71Sopenharmony_ciExecutes a shell command. This API uses an asynchronous callback to return the result.
1069e41f4b71Sopenharmony_ci
1070e41f4b71Sopenharmony_ciOnly the following shell commands are supported: aa, bm, cp, mkdir, rm, uinput, hilog, ppwd, echo, uitest, acm, hidumper, wukong, pkill, ps, and pidof.
1071e41f4b71Sopenharmony_ci
1072e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11.
1073e41f4b71Sopenharmony_ci
1074e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Ability.AbilityRuntime.Core
1075e41f4b71Sopenharmony_ci
1076e41f4b71Sopenharmony_ci**Parameters**
1077e41f4b71Sopenharmony_ci
1078e41f4b71Sopenharmony_ci| Name  | Type                                                        | Mandatory| Description              |
1079e41f4b71Sopenharmony_ci| -------- | ------------------------------------------------------------ | ---- | ------------------ |
1080e41f4b71Sopenharmony_ci| cmd      | string                                                       | Yes  | Shell command string.   |
1081e41f4b71Sopenharmony_ci| callback | AsyncCallback\<[ShellCmdResult](js-apis-inner-application-shellCmdResult.md#shellcmdresult)> | Yes  | Callback used to return the result. If the shell command is executed, **err** is **undefined** and **data** is the execution result obtained. Otherwise, **err** is an error object.|
1082e41f4b71Sopenharmony_ci
1083e41f4b71Sopenharmony_ci**Example**
1084e41f4b71Sopenharmony_ci
1085e41f4b71Sopenharmony_ci```ts
1086e41f4b71Sopenharmony_ciimport { abilityDelegatorRegistry } from '@kit.TestKit';
1087e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
1088e41f4b71Sopenharmony_ci
1089e41f4b71Sopenharmony_cilet abilityDelegator: abilityDelegatorRegistry.AbilityDelegator;
1090e41f4b71Sopenharmony_cilet cmd = 'cmd';
1091e41f4b71Sopenharmony_ci
1092e41f4b71Sopenharmony_ciabilityDelegator = abilityDelegatorRegistry.getAbilityDelegator();
1093e41f4b71Sopenharmony_ciabilityDelegator.executeShellCommand(cmd, (err: BusinessError, data: abilityDelegatorRegistry.ShellCmdResult) => {
1094e41f4b71Sopenharmony_ci  console.info('executeShellCommand callback');
1095e41f4b71Sopenharmony_ci});
1096e41f4b71Sopenharmony_ci```
1097e41f4b71Sopenharmony_ci
1098e41f4b71Sopenharmony_ci### executeShellCommand
1099e41f4b71Sopenharmony_ci
1100e41f4b71Sopenharmony_ciexecuteShellCommand(cmd: string, timeoutSecs: number, callback: AsyncCallback\<ShellCmdResult>): void
1101e41f4b71Sopenharmony_ci
1102e41f4b71Sopenharmony_ciExecutes a shell command with the timeout period specified. This API uses an asynchronous callback to return the result.
1103e41f4b71Sopenharmony_ci
1104e41f4b71Sopenharmony_ciOnly the following shell commands are supported: aa, bm, cp, mkdir, rm, uinput, hilog, ppwd, echo, uitest, acm, hidumper, wukong, pkill, ps, and pidof.
1105e41f4b71Sopenharmony_ci
1106e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11.
1107e41f4b71Sopenharmony_ci
1108e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Ability.AbilityRuntime.Core
1109e41f4b71Sopenharmony_ci
1110e41f4b71Sopenharmony_ci**Parameters**
1111e41f4b71Sopenharmony_ci
1112e41f4b71Sopenharmony_ci| Name     | Type                                                        | Mandatory| Description                         |
1113e41f4b71Sopenharmony_ci| ----------- | ------------------------------------------------------------ | ---- | ----------------------------- |
1114e41f4b71Sopenharmony_ci| cmd         | string                                                       | Yes  | Shell command string.              |
1115e41f4b71Sopenharmony_ci| timeoutSecs | number                                                       | Yes  | Command timeout period, in seconds.|
1116e41f4b71Sopenharmony_ci| callback    | AsyncCallback\<[ShellCmdResult](js-apis-inner-application-shellCmdResult.md#shellcmdresult)> | Yes  | Callback used to return the result. If the shell command is executed, **err** is **undefined** and **data** is the execution result obtained. Otherwise, **err** is an error object.  |
1117e41f4b71Sopenharmony_ci
1118e41f4b71Sopenharmony_ci**Example**
1119e41f4b71Sopenharmony_ci
1120e41f4b71Sopenharmony_ci```ts
1121e41f4b71Sopenharmony_ciimport { abilityDelegatorRegistry } from '@kit.TestKit';
1122e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
1123e41f4b71Sopenharmony_ci
1124e41f4b71Sopenharmony_cilet abilityDelegator: abilityDelegatorRegistry.AbilityDelegator;
1125e41f4b71Sopenharmony_cilet cmd = 'cmd';
1126e41f4b71Sopenharmony_cilet timeout = 100;
1127e41f4b71Sopenharmony_ci
1128e41f4b71Sopenharmony_ciabilityDelegator = abilityDelegatorRegistry.getAbilityDelegator();
1129e41f4b71Sopenharmony_ciabilityDelegator.executeShellCommand(cmd, timeout, (err: BusinessError, data: abilityDelegatorRegistry.ShellCmdResult) => {
1130e41f4b71Sopenharmony_ci  console.info('executeShellCommand callback');
1131e41f4b71Sopenharmony_ci});
1132e41f4b71Sopenharmony_ci```
1133e41f4b71Sopenharmony_ci
1134e41f4b71Sopenharmony_ci### executeShellCommand
1135e41f4b71Sopenharmony_ci
1136e41f4b71Sopenharmony_ciexecuteShellCommand(cmd: string, timeoutSecs?: number): Promise\<ShellCmdResult>
1137e41f4b71Sopenharmony_ci
1138e41f4b71Sopenharmony_ciExecutes a shell command with the timeout period specified. This API uses a promise to return the result.
1139e41f4b71Sopenharmony_ci
1140e41f4b71Sopenharmony_ciOnly the following shell commands are supported: aa, bm, cp, mkdir, rm, uinput, hilog, ppwd, echo, uitest, acm, hidumper, wukong, pkill, ps, and pidof.
1141e41f4b71Sopenharmony_ci
1142e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11.
1143e41f4b71Sopenharmony_ci
1144e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Ability.AbilityRuntime.Core
1145e41f4b71Sopenharmony_ci
1146e41f4b71Sopenharmony_ci**Parameters**
1147e41f4b71Sopenharmony_ci
1148e41f4b71Sopenharmony_ci| Name     | Type  | Mandatory| Description                         |
1149e41f4b71Sopenharmony_ci| ----------- | ------ | ---- | ----------------------------- |
1150e41f4b71Sopenharmony_ci| cmd         | string | Yes  | Shell command string.              |
1151e41f4b71Sopenharmony_ci| timeoutSecs | number | No  | Command timeout period, in seconds.|
1152e41f4b71Sopenharmony_ci
1153e41f4b71Sopenharmony_ci**Return value**
1154e41f4b71Sopenharmony_ci
1155e41f4b71Sopenharmony_ci| Type                                                        | Description                                                        |
1156e41f4b71Sopenharmony_ci| ------------------------------------------------------------ | ------------------------------------------------------------ |
1157e41f4b71Sopenharmony_ci| Promise\<[ShellCmdResult](js-apis-inner-application-shellCmdResult.md#shellcmdresult)> | Promise used to return a [ShellCmdResult](js-apis-inner-application-shellCmdResult.md#shellcmdresult) object.|
1158e41f4b71Sopenharmony_ci
1159e41f4b71Sopenharmony_ci**Example**
1160e41f4b71Sopenharmony_ci
1161e41f4b71Sopenharmony_ci```ts
1162e41f4b71Sopenharmony_ciimport { abilityDelegatorRegistry } from '@kit.TestKit';
1163e41f4b71Sopenharmony_ci
1164e41f4b71Sopenharmony_cilet abilityDelegator: abilityDelegatorRegistry.AbilityDelegator;
1165e41f4b71Sopenharmony_cilet cmd = 'cmd';
1166e41f4b71Sopenharmony_cilet timeout = 100;
1167e41f4b71Sopenharmony_ci
1168e41f4b71Sopenharmony_ciabilityDelegator = abilityDelegatorRegistry.getAbilityDelegator();
1169e41f4b71Sopenharmony_ciabilityDelegator.executeShellCommand(cmd, timeout).then((data) => {
1170e41f4b71Sopenharmony_ci  console.info('executeShellCommand promise');
1171e41f4b71Sopenharmony_ci});
1172e41f4b71Sopenharmony_ci```
1173e41f4b71Sopenharmony_ci
1174e41f4b71Sopenharmony_ci### finishTest<sup>9+</sup>
1175e41f4b71Sopenharmony_ci
1176e41f4b71Sopenharmony_cifinishTest(msg: string, code: number, callback: AsyncCallback\<void>): void
1177e41f4b71Sopenharmony_ci
1178e41f4b71Sopenharmony_ciFinishes the test and prints log information to the unit test console. This API uses an asynchronous callback to return the result.
1179e41f4b71Sopenharmony_ci
1180e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11.
1181e41f4b71Sopenharmony_ci
1182e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Ability.AbilityRuntime.Core
1183e41f4b71Sopenharmony_ci
1184e41f4b71Sopenharmony_ci**Parameters**
1185e41f4b71Sopenharmony_ci
1186e41f4b71Sopenharmony_ci| Name  | Type                | Mandatory| Description              |
1187e41f4b71Sopenharmony_ci| -------- | -------------------- | ---- | ------------------ |
1188e41f4b71Sopenharmony_ci| msg      | string               | Yes  | Log string.        |
1189e41f4b71Sopenharmony_ci| code     | number               | Yes  | Log code.            |
1190e41f4b71Sopenharmony_ci| callback | AsyncCallback\<void> | Yes  | Callback used to return the result. If the test finishes and the log information is printed to the unit test console, **err** is undefined. Otherwise, **err** is an error object.|
1191e41f4b71Sopenharmony_ci
1192e41f4b71Sopenharmony_ci**Error codes**
1193e41f4b71Sopenharmony_ci
1194e41f4b71Sopenharmony_ciFor details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Ability Error Codes](../apis-ability-kit/errorcode-ability.md).
1195e41f4b71Sopenharmony_ci
1196e41f4b71Sopenharmony_ci| ID| Error Message|
1197e41f4b71Sopenharmony_ci| ------- | -------- |
1198e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. |
1199e41f4b71Sopenharmony_ci| 16000100 | FinishTest failed. |
1200e41f4b71Sopenharmony_ci
1201e41f4b71Sopenharmony_ci**Example**
1202e41f4b71Sopenharmony_ci
1203e41f4b71Sopenharmony_ci```ts
1204e41f4b71Sopenharmony_ciimport { abilityDelegatorRegistry } from '@kit.TestKit';
1205e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
1206e41f4b71Sopenharmony_ci
1207e41f4b71Sopenharmony_cilet abilityDelegator: abilityDelegatorRegistry.AbilityDelegator;
1208e41f4b71Sopenharmony_cilet msg = 'msg';
1209e41f4b71Sopenharmony_ci
1210e41f4b71Sopenharmony_ciabilityDelegator = abilityDelegatorRegistry.getAbilityDelegator();
1211e41f4b71Sopenharmony_ciabilityDelegator.finishTest(msg, 0, (err: BusinessError) => {
1212e41f4b71Sopenharmony_ci  console.info('finishTest callback');
1213e41f4b71Sopenharmony_ci});
1214e41f4b71Sopenharmony_ci```
1215e41f4b71Sopenharmony_ci
1216e41f4b71Sopenharmony_ci### finishTest<sup>9+</sup>
1217e41f4b71Sopenharmony_ci
1218e41f4b71Sopenharmony_cifinishTest(msg: string, code: number): Promise\<void>
1219e41f4b71Sopenharmony_ci
1220e41f4b71Sopenharmony_ciFinishes the test and prints log information to the unit test console. This API uses a promise to return the result.
1221e41f4b71Sopenharmony_ci
1222e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11.
1223e41f4b71Sopenharmony_ci
1224e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Ability.AbilityRuntime.Core
1225e41f4b71Sopenharmony_ci
1226e41f4b71Sopenharmony_ci**Parameters**
1227e41f4b71Sopenharmony_ci
1228e41f4b71Sopenharmony_ci| Name| Type  | Mandatory| Description      |
1229e41f4b71Sopenharmony_ci| ------ | ------ | ---- | ---------- |
1230e41f4b71Sopenharmony_ci| msg    | string | Yes  | Log string.|
1231e41f4b71Sopenharmony_ci| code   | number | Yes  | Log code.    |
1232e41f4b71Sopenharmony_ci
1233e41f4b71Sopenharmony_ci**Return value**
1234e41f4b71Sopenharmony_ci
1235e41f4b71Sopenharmony_ci| Type          | Description               |
1236e41f4b71Sopenharmony_ci| -------------- | ------------------- |
1237e41f4b71Sopenharmony_ci| Promise\<void> | Promise that returns no value.|
1238e41f4b71Sopenharmony_ci
1239e41f4b71Sopenharmony_ci**Error codes**
1240e41f4b71Sopenharmony_ci
1241e41f4b71Sopenharmony_ciFor details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Ability Error Codes](../apis-ability-kit/errorcode-ability.md).
1242e41f4b71Sopenharmony_ci
1243e41f4b71Sopenharmony_ci| ID| Error Message|
1244e41f4b71Sopenharmony_ci| ------- | -------- |
1245e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. |
1246e41f4b71Sopenharmony_ci| 16000100 | FinishTest failed. |
1247e41f4b71Sopenharmony_ci
1248e41f4b71Sopenharmony_ci**Example**
1249e41f4b71Sopenharmony_ci
1250e41f4b71Sopenharmony_ci```ts
1251e41f4b71Sopenharmony_ciimport { abilityDelegatorRegistry } from '@kit.TestKit';
1252e41f4b71Sopenharmony_ci
1253e41f4b71Sopenharmony_cilet abilityDelegator: abilityDelegatorRegistry.AbilityDelegator;
1254e41f4b71Sopenharmony_cilet msg = 'msg';
1255e41f4b71Sopenharmony_ci
1256e41f4b71Sopenharmony_ciabilityDelegator = abilityDelegatorRegistry.getAbilityDelegator();
1257e41f4b71Sopenharmony_ciabilityDelegator.finishTest(msg, 0).then(() => {
1258e41f4b71Sopenharmony_ci  console.info('finishTest promise');
1259e41f4b71Sopenharmony_ci});
1260e41f4b71Sopenharmony_ci```
1261e41f4b71Sopenharmony_ci
1262e41f4b71Sopenharmony_ci### addAbilityStageMonitor<sup>9+</sup>
1263e41f4b71Sopenharmony_ci
1264e41f4b71Sopenharmony_ciaddAbilityStageMonitor(monitor: AbilityStageMonitor, callback: AsyncCallback\<void>): void
1265e41f4b71Sopenharmony_ci
1266e41f4b71Sopenharmony_ciAdds an **AbilityStageMonitor** instance to monitor the lifecycle state changes of an ability stage. This API uses an asynchronous callback to return the result.
1267e41f4b71Sopenharmony_ci
1268e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11.
1269e41f4b71Sopenharmony_ci
1270e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Ability.AbilityRuntime.Core
1271e41f4b71Sopenharmony_ci
1272e41f4b71Sopenharmony_ci**Parameters**
1273e41f4b71Sopenharmony_ci
1274e41f4b71Sopenharmony_ci| Name  | Type                                                        | Mandatory| Description                                                        |
1275e41f4b71Sopenharmony_ci| -------- | ------------------------------------------------------------ | -------- | ------------------------------------------------------------ |
1276e41f4b71Sopenharmony_ci| monitor  | [AbilityStageMonitor](../apis-ability-kit/js-apis-inner-application-abilityStageMonitor.md) | Yes      | [AbilityStageMonitor](../apis-ability-kit/js-apis-inner-application-abilityStageMonitor.md) instance.|
1277e41f4b71Sopenharmony_ci| callback | AsyncCallback\<void>                                         | Yes      | Callback used to return the result. If the **AbilityStageMonitor** instance is added, **err** is undefined. Otherwise, **err** is an error object.    |
1278e41f4b71Sopenharmony_ci
1279e41f4b71Sopenharmony_ci**Error codes**
1280e41f4b71Sopenharmony_ci
1281e41f4b71Sopenharmony_ciFor details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Ability Error Codes](../apis-ability-kit/errorcode-ability.md).
1282e41f4b71Sopenharmony_ci
1283e41f4b71Sopenharmony_ci| ID| Error Message|
1284e41f4b71Sopenharmony_ci| ------- | -------- |
1285e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. |
1286e41f4b71Sopenharmony_ci| 16000100 | AddAbilityStageMonitor failed. |
1287e41f4b71Sopenharmony_ci
1288e41f4b71Sopenharmony_ci**Example**
1289e41f4b71Sopenharmony_ci
1290e41f4b71Sopenharmony_ci```ts
1291e41f4b71Sopenharmony_ciimport { abilityDelegatorRegistry } from '@kit.TestKit';
1292e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
1293e41f4b71Sopenharmony_ci
1294e41f4b71Sopenharmony_cilet abilityDelegator: abilityDelegatorRegistry.AbilityDelegator;
1295e41f4b71Sopenharmony_ci
1296e41f4b71Sopenharmony_ciabilityDelegator = abilityDelegatorRegistry.getAbilityDelegator();
1297e41f4b71Sopenharmony_ciabilityDelegator.addAbilityStageMonitor({
1298e41f4b71Sopenharmony_ci  moduleName: 'moduleName',
1299e41f4b71Sopenharmony_ci  srcEntrance: 'srcEntrance',
1300e41f4b71Sopenharmony_ci}, (err: BusinessError) => {
1301e41f4b71Sopenharmony_ci  console.info('addAbilityStageMonitor callback');
1302e41f4b71Sopenharmony_ci});
1303e41f4b71Sopenharmony_ci```
1304e41f4b71Sopenharmony_ci
1305e41f4b71Sopenharmony_ci### addAbilityStageMonitor<sup>9+</sup>
1306e41f4b71Sopenharmony_ci
1307e41f4b71Sopenharmony_ciaddAbilityStageMonitor(monitor: AbilityStageMonitor): Promise\<void>
1308e41f4b71Sopenharmony_ci
1309e41f4b71Sopenharmony_ciAdds an **AbilityStageMonitor** instance to monitor the lifecycle state changes of an ability stage. This API uses a promise to return the result.
1310e41f4b71Sopenharmony_ci
1311e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11.
1312e41f4b71Sopenharmony_ci
1313e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Ability.AbilityRuntime.Core
1314e41f4b71Sopenharmony_ci
1315e41f4b71Sopenharmony_ci**Parameters**
1316e41f4b71Sopenharmony_ci
1317e41f4b71Sopenharmony_ci| Name | Type                                                        | Mandatory| Description                                                        |
1318e41f4b71Sopenharmony_ci| ------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
1319e41f4b71Sopenharmony_ci| monitor | [AbilityStageMonitor](../apis-ability-kit/js-apis-inner-application-abilityStageMonitor.md) | Yes  | [AbilityStageMonitor](../apis-ability-kit/js-apis-inner-application-abilityStageMonitor.md) instance.|
1320e41f4b71Sopenharmony_ci
1321e41f4b71Sopenharmony_ci**Return value**
1322e41f4b71Sopenharmony_ci
1323e41f4b71Sopenharmony_ci| Type          | Description               |
1324e41f4b71Sopenharmony_ci| -------------- | ------------------- |
1325e41f4b71Sopenharmony_ci| Promise\<void> | Promise that returns no value.|
1326e41f4b71Sopenharmony_ci
1327e41f4b71Sopenharmony_ci**Error codes**
1328e41f4b71Sopenharmony_ci
1329e41f4b71Sopenharmony_ciFor details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Ability Error Codes](../apis-ability-kit/errorcode-ability.md).
1330e41f4b71Sopenharmony_ci
1331e41f4b71Sopenharmony_ci| ID| Error Message|
1332e41f4b71Sopenharmony_ci| ------- | -------- |
1333e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. |
1334e41f4b71Sopenharmony_ci| 16000100 | AddAbilityStageMonitor failed. |
1335e41f4b71Sopenharmony_ci
1336e41f4b71Sopenharmony_ci**Example**
1337e41f4b71Sopenharmony_ci
1338e41f4b71Sopenharmony_ci```ts
1339e41f4b71Sopenharmony_ciimport { abilityDelegatorRegistry } from '@kit.TestKit';
1340e41f4b71Sopenharmony_ci
1341e41f4b71Sopenharmony_cilet abilityDelegator: abilityDelegatorRegistry.AbilityDelegator;
1342e41f4b71Sopenharmony_ci
1343e41f4b71Sopenharmony_ciabilityDelegator = abilityDelegatorRegistry.getAbilityDelegator();
1344e41f4b71Sopenharmony_ciabilityDelegator.addAbilityStageMonitor({
1345e41f4b71Sopenharmony_ci  moduleName: 'moduleName',
1346e41f4b71Sopenharmony_ci  srcEntrance: 'srcEntrance',
1347e41f4b71Sopenharmony_ci}).then(() => {
1348e41f4b71Sopenharmony_ci  console.info('addAbilityStageMonitor promise');
1349e41f4b71Sopenharmony_ci});
1350e41f4b71Sopenharmony_ci```
1351e41f4b71Sopenharmony_ci
1352e41f4b71Sopenharmony_ci### addAbilityStageMonitorSync<sup>10+</sup>
1353e41f4b71Sopenharmony_ci
1354e41f4b71Sopenharmony_ciaddAbilityStageMonitorSync(monitor: AbilityStageMonitor): void
1355e41f4b71Sopenharmony_ci
1356e41f4b71Sopenharmony_ciAdds an **AbilityStageMonitor** instance to monitor the lifecycle state changes of an ability stage. This API returns the result synchronously.
1357e41f4b71Sopenharmony_ci
1358e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11.
1359e41f4b71Sopenharmony_ci
1360e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Ability.AbilityRuntime.Core
1361e41f4b71Sopenharmony_ci
1362e41f4b71Sopenharmony_ci**Parameters**
1363e41f4b71Sopenharmony_ci
1364e41f4b71Sopenharmony_ci| Name  | Type                                                        | Mandatory| Description                                                        |
1365e41f4b71Sopenharmony_ci| -------- | ------------------------------------------------------------ | -------- | ------------------------------------------------------------ |
1366e41f4b71Sopenharmony_ci| monitor  | [AbilityStageMonitor](../apis-ability-kit/js-apis-inner-application-abilityStageMonitor.md) | Yes      | [AbilityStageMonitor](../apis-ability-kit/js-apis-inner-application-abilityStageMonitor.md) instance.|
1367e41f4b71Sopenharmony_ci
1368e41f4b71Sopenharmony_ci**Error codes**
1369e41f4b71Sopenharmony_ci
1370e41f4b71Sopenharmony_ciFor details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Ability Error Codes](../apis-ability-kit/errorcode-ability.md).
1371e41f4b71Sopenharmony_ci
1372e41f4b71Sopenharmony_ci| ID| Error Message|
1373e41f4b71Sopenharmony_ci| ------- | -------- |
1374e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. |
1375e41f4b71Sopenharmony_ci| 16000100 | AddAbilityStageMonitorSync failed. |
1376e41f4b71Sopenharmony_ci
1377e41f4b71Sopenharmony_ci**Example**
1378e41f4b71Sopenharmony_ci
1379e41f4b71Sopenharmony_ci```ts
1380e41f4b71Sopenharmony_ciimport { abilityDelegatorRegistry } from '@kit.TestKit';
1381e41f4b71Sopenharmony_ci
1382e41f4b71Sopenharmony_cilet abilityDelegator: abilityDelegatorRegistry.AbilityDelegator;
1383e41f4b71Sopenharmony_ci
1384e41f4b71Sopenharmony_ciabilityDelegator = abilityDelegatorRegistry.getAbilityDelegator();
1385e41f4b71Sopenharmony_ciabilityDelegator.addAbilityStageMonitorSync({
1386e41f4b71Sopenharmony_ci  moduleName: 'moduleName',
1387e41f4b71Sopenharmony_ci  srcEntrance: 'srcEntrance',
1388e41f4b71Sopenharmony_ci});
1389e41f4b71Sopenharmony_ci```
1390e41f4b71Sopenharmony_ci
1391e41f4b71Sopenharmony_ci### removeAbilityStageMonitor<sup>9+</sup>
1392e41f4b71Sopenharmony_ci
1393e41f4b71Sopenharmony_ciremoveAbilityStageMonitor(monitor: AbilityStageMonitor, callback: AsyncCallback\<void>): void
1394e41f4b71Sopenharmony_ci
1395e41f4b71Sopenharmony_ciRemoves an **AbilityStageMonitor** instance from the application memory. This API uses an asynchronous callback to return the result.
1396e41f4b71Sopenharmony_ci
1397e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11.
1398e41f4b71Sopenharmony_ci
1399e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Ability.AbilityRuntime.Core
1400e41f4b71Sopenharmony_ci
1401e41f4b71Sopenharmony_ci**Parameters**
1402e41f4b71Sopenharmony_ci
1403e41f4b71Sopenharmony_ci| Name  | Type                                                        | Mandatory| Description                                                        |
1404e41f4b71Sopenharmony_ci| -------- | ------------------------------------------------------------ | -------- | ------------------------------------------------------------ |
1405e41f4b71Sopenharmony_ci| monitor  | [AbilityStageMonitor](../apis-ability-kit/js-apis-inner-application-abilityStageMonitor.md) | Yes      | [AbilityStageMonitor](../apis-ability-kit/js-apis-inner-application-abilityStageMonitor.md) instance.|
1406e41f4b71Sopenharmony_ci| callback | AsyncCallback\<void>                                         | Yes      | Callback used to return the result. If the **AbilityStageMonitor** instance is removed, **err** is undefined. Otherwise, **err** is an error object.|
1407e41f4b71Sopenharmony_ci
1408e41f4b71Sopenharmony_ci**Error codes**
1409e41f4b71Sopenharmony_ci
1410e41f4b71Sopenharmony_ciFor details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Ability Error Codes](../apis-ability-kit/errorcode-ability.md).
1411e41f4b71Sopenharmony_ci
1412e41f4b71Sopenharmony_ci| ID| Error Message|
1413e41f4b71Sopenharmony_ci| ------- | -------- |
1414e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. |
1415e41f4b71Sopenharmony_ci| 16000100 | RemoveAbilityStageMonitor failed. |
1416e41f4b71Sopenharmony_ci
1417e41f4b71Sopenharmony_ci**Example**
1418e41f4b71Sopenharmony_ci
1419e41f4b71Sopenharmony_ci```ts
1420e41f4b71Sopenharmony_ciimport { abilityDelegatorRegistry } from '@kit.TestKit';
1421e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
1422e41f4b71Sopenharmony_ci
1423e41f4b71Sopenharmony_cilet abilityDelegator: abilityDelegatorRegistry.AbilityDelegator;
1424e41f4b71Sopenharmony_ci
1425e41f4b71Sopenharmony_ciabilityDelegator = abilityDelegatorRegistry.getAbilityDelegator();
1426e41f4b71Sopenharmony_ciabilityDelegator.removeAbilityStageMonitor({
1427e41f4b71Sopenharmony_ci  moduleName: 'moduleName',
1428e41f4b71Sopenharmony_ci  srcEntrance: 'srcEntrance',
1429e41f4b71Sopenharmony_ci}, (err: BusinessError) => {
1430e41f4b71Sopenharmony_ci  console.info('removeAbilityStageMonitor callback');
1431e41f4b71Sopenharmony_ci});
1432e41f4b71Sopenharmony_ci```
1433e41f4b71Sopenharmony_ci
1434e41f4b71Sopenharmony_ci### removeAbilityStageMonitor<sup>9+</sup>
1435e41f4b71Sopenharmony_ci
1436e41f4b71Sopenharmony_ciremoveAbilityStageMonitor(monitor: AbilityStageMonitor): Promise\<void>
1437e41f4b71Sopenharmony_ci
1438e41f4b71Sopenharmony_ciRemoves an **AbilityStageMonitor** instance from the application memory. This API uses a promise to return the result.
1439e41f4b71Sopenharmony_ci
1440e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11.
1441e41f4b71Sopenharmony_ci
1442e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Ability.AbilityRuntime.Core
1443e41f4b71Sopenharmony_ci
1444e41f4b71Sopenharmony_ci**Parameters**
1445e41f4b71Sopenharmony_ci
1446e41f4b71Sopenharmony_ci| Name | Type                                                        | Mandatory| Description                                                        |
1447e41f4b71Sopenharmony_ci| ------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
1448e41f4b71Sopenharmony_ci| monitor | [AbilityStageMonitor](../apis-ability-kit/js-apis-inner-application-abilityStageMonitor.md) | Yes  | [AbilityStageMonitor](../apis-ability-kit/js-apis-inner-application-abilityStageMonitor.md) instance.|
1449e41f4b71Sopenharmony_ci
1450e41f4b71Sopenharmony_ci**Return value**
1451e41f4b71Sopenharmony_ci
1452e41f4b71Sopenharmony_ci| Type          | Description               |
1453e41f4b71Sopenharmony_ci| -------------- | ------------------- |
1454e41f4b71Sopenharmony_ci| Promise\<void> | Promise that returns no value.|
1455e41f4b71Sopenharmony_ci
1456e41f4b71Sopenharmony_ci**Error codes**
1457e41f4b71Sopenharmony_ci
1458e41f4b71Sopenharmony_ciFor details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Ability Error Codes](../apis-ability-kit/errorcode-ability.md).
1459e41f4b71Sopenharmony_ci
1460e41f4b71Sopenharmony_ci| ID| Error Message|
1461e41f4b71Sopenharmony_ci| ------- | -------- |
1462e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. |
1463e41f4b71Sopenharmony_ci| 16000100 | RemoveAbilityStageMonitor failed. |
1464e41f4b71Sopenharmony_ci
1465e41f4b71Sopenharmony_ci**Example**
1466e41f4b71Sopenharmony_ci
1467e41f4b71Sopenharmony_ci```ts
1468e41f4b71Sopenharmony_ciimport { abilityDelegatorRegistry } from '@kit.TestKit';
1469e41f4b71Sopenharmony_ci
1470e41f4b71Sopenharmony_cilet abilityDelegator: abilityDelegatorRegistry.AbilityDelegator;
1471e41f4b71Sopenharmony_ci
1472e41f4b71Sopenharmony_ciabilityDelegator = abilityDelegatorRegistry.getAbilityDelegator();
1473e41f4b71Sopenharmony_ciabilityDelegator.removeAbilityStageMonitor({
1474e41f4b71Sopenharmony_ci  moduleName: 'moduleName',
1475e41f4b71Sopenharmony_ci  srcEntrance: 'srcEntrance',
1476e41f4b71Sopenharmony_ci}).then(() => {
1477e41f4b71Sopenharmony_ci  console.info('removeAbilityStageMonitor promise');
1478e41f4b71Sopenharmony_ci});
1479e41f4b71Sopenharmony_ci```
1480e41f4b71Sopenharmony_ci
1481e41f4b71Sopenharmony_ci### removeAbilityStageMonitorSync<sup>10+</sup>
1482e41f4b71Sopenharmony_ci
1483e41f4b71Sopenharmony_ciremoveAbilityStageMonitorSync(monitor: AbilityStageMonitor): void
1484e41f4b71Sopenharmony_ci
1485e41f4b71Sopenharmony_ciRemoves an **AbilityStageMonitor** instance from the application memory. This API returns the result synchronously.
1486e41f4b71Sopenharmony_ci
1487e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11.
1488e41f4b71Sopenharmony_ci
1489e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Ability.AbilityRuntime.Core
1490e41f4b71Sopenharmony_ci
1491e41f4b71Sopenharmony_ci**Parameters**
1492e41f4b71Sopenharmony_ci
1493e41f4b71Sopenharmony_ci| Name  | Type                                                        | Mandatory| Description                                                        |
1494e41f4b71Sopenharmony_ci| -------- | ------------------------------------------------------------ | -------- | ------------------------------------------------------------ |
1495e41f4b71Sopenharmony_ci| monitor  | [AbilityStageMonitor](../apis-ability-kit/js-apis-inner-application-abilityStageMonitor.md) | Yes      | [AbilityStageMonitor](../apis-ability-kit/js-apis-inner-application-abilityStageMonitor.md) instance.|
1496e41f4b71Sopenharmony_ci
1497e41f4b71Sopenharmony_ci**Error codes**
1498e41f4b71Sopenharmony_ci
1499e41f4b71Sopenharmony_ciFor details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Ability Error Codes](../apis-ability-kit/errorcode-ability.md).
1500e41f4b71Sopenharmony_ci
1501e41f4b71Sopenharmony_ci| ID| Error Message|
1502e41f4b71Sopenharmony_ci| ------- | -------- |
1503e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. |
1504e41f4b71Sopenharmony_ci| 16000100 | RemoveAbilityStageMonitorSync failed. |
1505e41f4b71Sopenharmony_ci
1506e41f4b71Sopenharmony_ci
1507e41f4b71Sopenharmony_ci**Example**
1508e41f4b71Sopenharmony_ci
1509e41f4b71Sopenharmony_ci```ts
1510e41f4b71Sopenharmony_ciimport { abilityDelegatorRegistry } from '@kit.TestKit';
1511e41f4b71Sopenharmony_ci
1512e41f4b71Sopenharmony_cilet abilityDelegator: abilityDelegatorRegistry.AbilityDelegator;
1513e41f4b71Sopenharmony_ci
1514e41f4b71Sopenharmony_ciabilityDelegator = abilityDelegatorRegistry.getAbilityDelegator();
1515e41f4b71Sopenharmony_ciabilityDelegator.removeAbilityStageMonitorSync({
1516e41f4b71Sopenharmony_ci  moduleName: 'moduleName',
1517e41f4b71Sopenharmony_ci  srcEntrance: 'srcEntrance',
1518e41f4b71Sopenharmony_ci});
1519e41f4b71Sopenharmony_ci```
1520e41f4b71Sopenharmony_ci
1521e41f4b71Sopenharmony_ci### waitAbilityStageMonitor<sup>9+</sup>
1522e41f4b71Sopenharmony_ci
1523e41f4b71Sopenharmony_ciwaitAbilityStageMonitor(monitor: AbilityStageMonitor, callback: AsyncCallback\<AbilityStage>): void
1524e41f4b71Sopenharmony_ci
1525e41f4b71Sopenharmony_ciWaits for an **AbilityStage** instance that matches the conditions set in an **AbilityStageMonitor** instance and returns the **AbilityStage** instance. This API uses an asynchronous callback to return the result.
1526e41f4b71Sopenharmony_ci
1527e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11.
1528e41f4b71Sopenharmony_ci
1529e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Ability.AbilityRuntime.Core
1530e41f4b71Sopenharmony_ci
1531e41f4b71Sopenharmony_ci**Parameters**
1532e41f4b71Sopenharmony_ci
1533e41f4b71Sopenharmony_ci| Name  | Type                                                        | Mandatory| Description                                                        |
1534e41f4b71Sopenharmony_ci| -------- | ------------------------------------------------------------ | -------- | ------------------------------------------------------------ |
1535e41f4b71Sopenharmony_ci| monitor  | [AbilityStageMonitor](../apis-ability-kit/js-apis-inner-application-abilityStageMonitor.md) | Yes      | [AbilityStageMonitor](../apis-ability-kit/js-apis-inner-application-abilityStageMonitor.md) instance.|
1536e41f4b71Sopenharmony_ci| callback | AsyncCallback\<AbilityStage>                                         | Yes      | Callback used to return the result. If the operation is successful, **err** is undefined and data is the [AbilityStage](../apis-ability-kit/js-apis-app-ability-abilityStage.md) instance obtained. Otherwise, **err** is an error object.   |
1537e41f4b71Sopenharmony_ci
1538e41f4b71Sopenharmony_ci**Error codes**
1539e41f4b71Sopenharmony_ci
1540e41f4b71Sopenharmony_ciFor details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Ability Error Codes](../apis-ability-kit/errorcode-ability.md).
1541e41f4b71Sopenharmony_ci
1542e41f4b71Sopenharmony_ci| ID| Error Message|
1543e41f4b71Sopenharmony_ci| ------- | -------- |
1544e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. |
1545e41f4b71Sopenharmony_ci| 16000100 | WaitAbilityStageMonitor failed. |
1546e41f4b71Sopenharmony_ci
1547e41f4b71Sopenharmony_ci**Example**
1548e41f4b71Sopenharmony_ci
1549e41f4b71Sopenharmony_ci```ts
1550e41f4b71Sopenharmony_ciimport { abilityDelegatorRegistry } from '@kit.TestKit';
1551e41f4b71Sopenharmony_ciimport { AbilityStage } from '@kit.AbilityKit';
1552e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
1553e41f4b71Sopenharmony_ci
1554e41f4b71Sopenharmony_cilet abilityDelegator: abilityDelegatorRegistry.AbilityDelegator;
1555e41f4b71Sopenharmony_ci
1556e41f4b71Sopenharmony_ciabilityDelegator = abilityDelegatorRegistry.getAbilityDelegator();
1557e41f4b71Sopenharmony_ciabilityDelegator.waitAbilityStageMonitor({
1558e41f4b71Sopenharmony_ci  moduleName: 'moduleName',
1559e41f4b71Sopenharmony_ci  srcEntrance: 'srcEntrance',
1560e41f4b71Sopenharmony_ci}, (err: BusinessError, data: AbilityStage) => {
1561e41f4b71Sopenharmony_ci  console.info('waitAbilityStageMonitor callback');
1562e41f4b71Sopenharmony_ci});
1563e41f4b71Sopenharmony_ci```
1564e41f4b71Sopenharmony_ci
1565e41f4b71Sopenharmony_ci### waitAbilityStageMonitor<sup>9+</sup>
1566e41f4b71Sopenharmony_ci
1567e41f4b71Sopenharmony_ciwaitAbilityStageMonitor(monitor: AbilityStageMonitor, timeout?: number): Promise\<AbilityStage>
1568e41f4b71Sopenharmony_ci
1569e41f4b71Sopenharmony_ciWaits for an **AbilityStage** instance that matches the conditions set in an **AbilityStageMonitor** instance and returns the **AbilityStage** instance. This API uses a promise to return the result.
1570e41f4b71Sopenharmony_ci
1571e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11.
1572e41f4b71Sopenharmony_ci
1573e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Ability.AbilityRuntime.Core
1574e41f4b71Sopenharmony_ci
1575e41f4b71Sopenharmony_ci**Parameters**
1576e41f4b71Sopenharmony_ci
1577e41f4b71Sopenharmony_ci| Name | Type                                                        | Mandatory| Description                                                        |
1578e41f4b71Sopenharmony_ci| ------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
1579e41f4b71Sopenharmony_ci| monitor | [AbilityStageMonitor](../apis-ability-kit/js-apis-inner-application-abilityStageMonitor.md) | Yes  | [AbilityStageMonitor](../apis-ability-kit/js-apis-inner-application-abilityStageMonitor.md) instance.|
1580e41f4b71Sopenharmony_ci| timeout | number | No  | Maximum waiting time, in milliseconds.|
1581e41f4b71Sopenharmony_ci
1582e41f4b71Sopenharmony_ci**Return value**
1583e41f4b71Sopenharmony_ci
1584e41f4b71Sopenharmony_ci| Type          | Description               |
1585e41f4b71Sopenharmony_ci| -------------- | ------------------- |
1586e41f4b71Sopenharmony_ci| Promise\<AbilityStage> | Promise used to return the [AbilityStage](../apis-ability-kit/js-apis-app-ability-abilityStage.md) instance.|
1587e41f4b71Sopenharmony_ci
1588e41f4b71Sopenharmony_ci**Error codes**
1589e41f4b71Sopenharmony_ci
1590e41f4b71Sopenharmony_ciFor details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Ability Error Codes](../apis-ability-kit/errorcode-ability.md).
1591e41f4b71Sopenharmony_ci
1592e41f4b71Sopenharmony_ci| ID| Error Message|
1593e41f4b71Sopenharmony_ci| ------- | -------- |
1594e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. |
1595e41f4b71Sopenharmony_ci| 16000100 | WaitAbilityStageMonitor failed. |
1596e41f4b71Sopenharmony_ci
1597e41f4b71Sopenharmony_ci**Example**
1598e41f4b71Sopenharmony_ci
1599e41f4b71Sopenharmony_ci```ts
1600e41f4b71Sopenharmony_ciimport { abilityDelegatorRegistry } from '@kit.TestKit';
1601e41f4b71Sopenharmony_ciimport { AbilityStage } from '@kit.AbilityKit';
1602e41f4b71Sopenharmony_ci
1603e41f4b71Sopenharmony_cilet abilityDelegator: abilityDelegatorRegistry.AbilityDelegator;
1604e41f4b71Sopenharmony_ci
1605e41f4b71Sopenharmony_ciabilityDelegator = abilityDelegatorRegistry.getAbilityDelegator();
1606e41f4b71Sopenharmony_ciabilityDelegator.waitAbilityStageMonitor({
1607e41f4b71Sopenharmony_ci  moduleName: 'moduleName',
1608e41f4b71Sopenharmony_ci  srcEntrance: 'srcEntrance',
1609e41f4b71Sopenharmony_ci}).then((data: AbilityStage) => {
1610e41f4b71Sopenharmony_ci  console.info('waitAbilityStageMonitor promise');
1611e41f4b71Sopenharmony_ci});
1612e41f4b71Sopenharmony_ci```
1613e41f4b71Sopenharmony_ci
1614e41f4b71Sopenharmony_ci### waitAbilityStageMonitor<sup>9+</sup>
1615e41f4b71Sopenharmony_ci
1616e41f4b71Sopenharmony_ciwaitAbilityStageMonitor(monitor: AbilityStageMonitor, timeout: number, callback: AsyncCallback\<AbilityStage>): void
1617e41f4b71Sopenharmony_ci
1618e41f4b71Sopenharmony_ciWaits a period of time for an **AbilityStage** instance that matches the conditions set in an **AbilityStageMonitor** instance and returns the **AbilityStage** instance. This API uses an asynchronous callback to return the result.
1619e41f4b71Sopenharmony_ci
1620e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11.
1621e41f4b71Sopenharmony_ci
1622e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Ability.AbilityRuntime.Core
1623e41f4b71Sopenharmony_ci
1624e41f4b71Sopenharmony_ci**Parameters**
1625e41f4b71Sopenharmony_ci
1626e41f4b71Sopenharmony_ci| Name | Type                                                        | Mandatory| Description                                                        |
1627e41f4b71Sopenharmony_ci| ------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
1628e41f4b71Sopenharmony_ci| monitor | [AbilityStageMonitor](../apis-ability-kit/js-apis-inner-application-abilityStageMonitor.md) | Yes  | [AbilityStageMonitor](../apis-ability-kit/js-apis-inner-application-abilityStageMonitor.md) instance.|
1629e41f4b71Sopenharmony_ci| timeout | number | Yes  | Maximum waiting time, in milliseconds.|
1630e41f4b71Sopenharmony_ci| callback | AsyncCallback\<AbilityStage>                                         | Yes      | Callback used to return the result. If the operation is successful, **err** is undefined and data is the [AbilityStage](../apis-ability-kit/js-apis-app-ability-abilityStage.md) instance obtained. Otherwise, **err** is an error object.  |
1631e41f4b71Sopenharmony_ci
1632e41f4b71Sopenharmony_ci**Error codes**
1633e41f4b71Sopenharmony_ci
1634e41f4b71Sopenharmony_ciFor details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Ability Error Codes](../apis-ability-kit/errorcode-ability.md).
1635e41f4b71Sopenharmony_ci
1636e41f4b71Sopenharmony_ci| ID| Error Message|
1637e41f4b71Sopenharmony_ci| ------- | -------- |
1638e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. |
1639e41f4b71Sopenharmony_ci| 16000100 | WaitAbilityStageMonitor failed. |
1640e41f4b71Sopenharmony_ci
1641e41f4b71Sopenharmony_ci**Example**
1642e41f4b71Sopenharmony_ci
1643e41f4b71Sopenharmony_ci```ts
1644e41f4b71Sopenharmony_ciimport { abilityDelegatorRegistry } from '@kit.TestKit';
1645e41f4b71Sopenharmony_ciimport { AbilityStage } from '@kit.AbilityKit';
1646e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
1647e41f4b71Sopenharmony_ci
1648e41f4b71Sopenharmony_cilet abilityDelegator: abilityDelegatorRegistry.AbilityDelegator;
1649e41f4b71Sopenharmony_cilet timeout = 100;
1650e41f4b71Sopenharmony_ci
1651e41f4b71Sopenharmony_ciabilityDelegator = abilityDelegatorRegistry.getAbilityDelegator();
1652e41f4b71Sopenharmony_ciabilityDelegator.waitAbilityStageMonitor({
1653e41f4b71Sopenharmony_ci  moduleName: 'moduleName',
1654e41f4b71Sopenharmony_ci  srcEntrance: 'srcEntrance',
1655e41f4b71Sopenharmony_ci}, timeout, (err: BusinessError, data: AbilityStage) => {
1656e41f4b71Sopenharmony_ci  console.info('waitAbilityStageMonitor callback');
1657e41f4b71Sopenharmony_ci});
1658e41f4b71Sopenharmony_ci```
1659e41f4b71Sopenharmony_ci
1660e41f4b71Sopenharmony_ci### setMockList<sup>11+</sup>
1661e41f4b71Sopenharmony_ci
1662e41f4b71Sopenharmony_cisetMockList(mockList: Record\<string, string>): void
1663e41f4b71Sopenharmony_ci
1664e41f4b71Sopenharmony_ciSets a list of mock data.
1665e41f4b71Sopenharmony_ci
1666e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11.
1667e41f4b71Sopenharmony_ci
1668e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Ability.AbilityRuntime.Core
1669e41f4b71Sopenharmony_ci
1670e41f4b71Sopenharmony_ci**Parameters**
1671e41f4b71Sopenharmony_ci
1672e41f4b71Sopenharmony_ci| Name  | Type                     | Mandatory| Description                                                        |
1673e41f4b71Sopenharmony_ci| -------- | ------------------------- | ---- | ------------------------------------------------------------ |
1674e41f4b71Sopenharmony_ci| mockList | Record\<string, string> | Yes  | Key-value object of the mock, where **key** is the target path to be replaced and **value** is the path of the mock implementation to be used for the replacement.|
1675e41f4b71Sopenharmony_ci
1676e41f4b71Sopenharmony_ci**Error codes**
1677e41f4b71Sopenharmony_ci
1678e41f4b71Sopenharmony_ciFor details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Ability Error Codes](../apis-ability-kit/errorcode-ability.md).
1679e41f4b71Sopenharmony_ci
1680e41f4b71Sopenharmony_ci| ID| Error Message       |
1681e41f4b71Sopenharmony_ci| -------- | --------------- |
1682e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. |
1683e41f4b71Sopenharmony_ci| 16000050 | Internal error. |
1684e41f4b71Sopenharmony_ci
1685e41f4b71Sopenharmony_ci**Example**
1686e41f4b71Sopenharmony_ci
1687e41f4b71Sopenharmony_ci```ts
1688e41f4b71Sopenharmony_ciimport { abilityDelegatorRegistry } from '@kit.TestKit';
1689e41f4b71Sopenharmony_ci
1690e41f4b71Sopenharmony_cilet mockList: Record<string, string> = {
1691e41f4b71Sopenharmony_ci  '@ohos.router': 'src/main/mock/ohos/router.mock',
1692e41f4b71Sopenharmony_ci  'common.time': 'src/main/mock/common/time.mock',
1693e41f4b71Sopenharmony_ci};
1694e41f4b71Sopenharmony_cilet abilityDelegator: abilityDelegatorRegistry.AbilityDelegator;
1695e41f4b71Sopenharmony_ci
1696e41f4b71Sopenharmony_ciabilityDelegator = abilityDelegatorRegistry.getAbilityDelegator();
1697e41f4b71Sopenharmony_ciabilityDelegator.setMockList(mockList);
1698e41f4b71Sopenharmony_ci```
1699