• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# ApplicationContext (应用上下文)
2
3<!--Kit: Ability Kit-->
4<!--Subsystem: Ability-->
5<!--Owner: @zexin_c-->
6<!--Designer: @li-weifeng2-->
7<!--Tester: @lixueqing513-->
8<!--Adviser: @huipeizi-->
9
10ApplicationContext作为应用上下文,继承自[Context](js-apis-inner-application-context.md),提供了应用生命周期监听、进程管理、应用环境设置等应用级别的管控能力。
11
12> **说明:**
13>
14> 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
15> 本模块接口仅可在Stage模型下使用。
16
17## 导入模块
18
19```ts
20import { common } from '@kit.AbilityKit';
21```
22
23## ApplicationContext.on('abilityLifecycle')
24
25on(type: 'abilityLifecycle', callback: AbilityLifecycleCallback): number
26
27注册监听应用内UIAbility的生命周期。使用callback异步回调。仅支持主线程调用。
28
29**原子化服务API**:从API version 11开始,该接口支持在原子化服务中使用。
30
31**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
32
33**参数:**
34
35| 参数名                   | 类型     | 必填 | 说明                           |
36| ------------------------ | -------- | ---- | ------------------------------ |
37| type | 'abilityLifecycle' | 是   | 此类型表示应用内UIAbility的生命周期。 |
38| callback | [AbilityLifecycleCallback](js-apis-app-ability-abilityLifecycleCallback.md) | 是   | UIAbility生命周期变化时触发的回调方法。 |
39
40**返回值:**
41
42| 类型   | 说明                                                         |
43| ------ | ------------------------------------------------------------ |
44| number | 返回此次注册的callbackID,该ID用于在[ApplicationContext.off('abilityLifecycle')](#applicationcontextoffabilitylifecycle)方法中取消注册对应的callback。 |
45
46**错误码**:
47
48以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)。
49
50| 错误码ID | 错误信息 |
51| ------- | -------- |
52| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. |
53
54**示例:**
55
56```ts
57import { UIAbility, AbilityLifecycleCallback } from '@kit.AbilityKit';
58import { BusinessError } from '@kit.BasicServicesKit';
59
60let lifecycleId: number;
61
62export default class EntryAbility extends UIAbility {
63  onCreate() {
64    console.log('MyAbility onCreate');
65    let AbilityLifecycleCallback: AbilityLifecycleCallback = {
66      onAbilityCreate(ability) {
67        console.log(`AbilityLifecycleCallback onAbilityCreate ability: ${ability}`);
68      },
69      onWindowStageCreate(ability, windowStage) {
70        console.log(`AbilityLifecycleCallback onWindowStageCreate ability: ${ability}`);
71        console.log(`AbilityLifecycleCallback onWindowStageCreate windowStage: ${windowStage}`);
72      },
73      onWindowStageActive(ability, windowStage) {
74        console.log(`AbilityLifecycleCallback onWindowStageActive ability: ${ability}`);
75        console.log(`AbilityLifecycleCallback onWindowStageActive windowStage: ${windowStage}`);
76      },
77      onWindowStageInactive(ability, windowStage) {
78        console.log(`AbilityLifecycleCallback onWindowStageInactive ability: ${ability}`);
79        console.log(`AbilityLifecycleCallback onWindowStageInactive windowStage: ${windowStage}`);
80      },
81      onWindowStageDestroy(ability, windowStage) {
82        console.log(`AbilityLifecycleCallback onWindowStageDestroy ability: ${ability}`);
83        console.log(`AbilityLifecycleCallback onWindowStageDestroy windowStage: ${windowStage}`);
84      },
85      onAbilityDestroy(ability) {
86        console.log(`AbilityLifecycleCallback onAbilityDestroy ability: ${ability}`);
87      },
88      onAbilityForeground(ability) {
89        console.log(`AbilityLifecycleCallback onAbilityForeground ability: ${ability}`);
90      },
91      onAbilityBackground(ability) {
92        console.log(`AbilityLifecycleCallback onAbilityBackground ability: ${ability}`);
93      },
94      onAbilityContinue(ability) {
95        console.log(`AbilityLifecycleCallback onAbilityContinue ability: ${ability}`);
96      }
97    }
98    // 1.通过context属性获取applicationContext
99    let applicationContext = this.context.getApplicationContext();
100    try {
101      // 2.通过applicationContext注册监听应用内生命周期
102      lifecycleId = applicationContext.on('abilityLifecycle', AbilityLifecycleCallback);
103    } catch (paramError) {
104      console.error(`error: ${(paramError as BusinessError).code}, ${(paramError as BusinessError).message}`);
105    }
106    console.log(`registerAbilityLifecycleCallback lifecycleId: ${lifecycleId}`);
107  }
108}
109```
110
111## ApplicationContext.off('abilityLifecycle')
112
113off(type: 'abilityLifecycle', callbackId: number,  callback: AsyncCallback\<void>): void
114
115取消监听应用内UIAbility的生命周期。使用callback异步回调。仅支持主线程调用。
116
117**原子化服务API**:从API version 11开始,该接口支持在原子化服务中使用。
118
119**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
120
121**参数:**
122
123| 参数名        | 类型     | 必填 | 说明                       |
124| ------------- | -------- | ---- | -------------------------- |
125| type | 'abilityLifecycle' | 是   | 此类型表示应用内UIAbility的生命周期。 |
126| callbackId    | number   | 是   | 通过[ApplicationContext.on('abilityLifecycle')](#applicationcontextonabilitylifecycle)接口注册监听应用内UIAbility的生命周期时返回的ID。 |
127| callback | AsyncCallback\<void> | 是   | 回调方法。当取消监听应用内生命周期成功,err为undefined,否则为错误对象。   |
128
129**错误码**:
130
131以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)。
132
133| 错误码ID | 错误信息 |
134| ------- | -------- |
135| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. |
136
137**示例:**
138
139```ts
140import { UIAbility } from '@kit.AbilityKit';
141import { BusinessError } from '@kit.BasicServicesKit';
142
143let lifecycleId: number;
144
145export default class EntryAbility extends UIAbility {
146  onDestroy() {
147    let applicationContext = this.context.getApplicationContext();
148    console.log(`stage applicationContext: ${applicationContext}`);
149    try {
150      applicationContext.off('abilityLifecycle', lifecycleId, (error, data) => {
151        if (error) {
152          console.error(`unregisterAbilityLifecycleCallback fail, err: ${JSON.stringify(error)}`);
153        } else {
154          console.log(`unregisterAbilityLifecycleCallback success, data: ${JSON.stringify(data)}`);
155        }
156      });
157    } catch (paramError) {
158      console.error(`error: ${(paramError as BusinessError).code}, ${(paramError as BusinessError).message}`);
159    }
160  }
161}
162```
163
164## ApplicationContext.off('abilityLifecycle')
165
166off(type: 'abilityLifecycle', callbackId: number): Promise\<void>
167
168取消监听应用内UIAbility的生命周期。使用Promise异步回调。仅支持主线程调用。
169
170**原子化服务API**:从API version 11开始,该接口支持在原子化服务中使用。
171
172**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
173
174**参数:**
175
176| 参数名        | 类型     | 必填 | 说明                       |
177| ------------- | -------- | ---- | -------------------------- |
178| type | 'abilityLifecycle' | 是   | 此类型表示应用内UIAbility的生命周期。 |
179| callbackId    | number   | 是   | 通过[ApplicationContext.on('abilityLifecycle')](#applicationcontextonabilitylifecycle)接口注册监听应用内UIAbility的生命周期时返回的ID。 |
180
181**返回值:**
182
183| 类型 | 说明 |
184| -------- | -------- |
185| Promise\<void> | 无返回结果的Promise对象。 |
186
187**错误码**:
188
189以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)。
190
191| 错误码ID | 错误信息 |
192| ------- | -------- |
193| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. |
194
195**示例:**
196
197```ts
198import { UIAbility } from '@kit.AbilityKit';
199import { BusinessError } from '@kit.BasicServicesKit';
200
201let lifecycleId: number;
202
203export default class MyAbility extends UIAbility {
204  onDestroy() {
205    let applicationContext = this.context.getApplicationContext();
206    console.log(`stage applicationContext: ${applicationContext}`);
207    try {
208      applicationContext.off('abilityLifecycle', lifecycleId);
209    } catch (paramError) {
210      console.error(`error: ${(paramError as BusinessError).code}, ${(paramError as BusinessError).message}`);
211    }
212  }
213}
214```
215
216## ApplicationContext.on('environment')
217
218on(type: 'environment', callback: EnvironmentCallback): number
219
220注册对系统环境变化的监听。使用callback异步回调。仅支持主线程调用。
221
222> **说明:**
223>
224> 使用[onConfigurationUpdate](../apis-ability-kit/js-apis-app-ability-ability.md#abilityonconfigurationupdate)也可以实现对系统环境变量的监听。相较于Ability的[onConfigurationUpdate](../apis-ability-kit/js-apis-app-ability-ability.md#abilityonconfigurationupdate)接口,当前接口的使用场景更加灵活,不仅可以在应用组件中使用,还可以在页面中使用,但是支持订阅的环境变量与Ability的[onConfigurationUpdate](../apis-ability-kit/js-apis-app-ability-ability.md#abilityonconfigurationupdate)接口存在差异,如不支持订阅direction、screenDensity、displayId,详见[Configuration](../apis-ability-kit/js-apis-app-ability-configuration.md#configuration)中各个环境变量的说明。
225
226**原子化服务API**:从API version 11开始,该接口支持在原子化服务中使用。
227
228**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
229
230**参数:**
231
232| 参数名                   | 类型     | 必填 | 说明                           |
233| ------------------------ | -------- | ---- | ------------------------------ |
234| type | 'environment' | 是   | 此类型表示系统环境变化,如系统深浅色发生变化。 |
235| callback | [EnvironmentCallback](js-apis-app-ability-environmentCallback.md) | 是   | 系统环境变化时触发的回调方法。 |
236
237**返回值:**
238
239| 类型   | 说明                                                         |
240| ------ | ------------------------------------------------------------ |
241| number | 返回此次注册的callbackID,该ID用于在[ApplicationContext.off('environment')](#applicationcontextoffenvironment)方法中取消注册对应的callback。 |
242
243**错误码**:
244
245以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)。
246
247| 错误码ID | 错误信息 |
248| ------- | -------- |
249| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. |
250
251**示例:**
252
253```ts
254import { UIAbility, EnvironmentCallback } from '@kit.AbilityKit';
255import { BusinessError } from '@kit.BasicServicesKit';
256
257let callbackId: number;
258
259export default class EntryAbility extends UIAbility {
260  onCreate() {
261    console.log('MyAbility onCreate')
262    let environmentCallback: EnvironmentCallback = {
263      onConfigurationUpdated(config) {
264        console.log(`onConfigurationUpdated config: ${JSON.stringify(config)}`);
265      },
266      onMemoryLevel(level) {
267        console.log(`onMemoryLevel level: ${level}`);
268      }
269    };
270    // 1.获取applicationContext
271    let applicationContext = this.context.getApplicationContext();
272    try {
273      // 2.通过applicationContext注册监听系统环境变化
274      callbackId = applicationContext.on('environment', environmentCallback);
275    } catch (paramError) {
276      console.error(`error: ${(paramError as BusinessError).code}, ${(paramError as BusinessError).message}`);
277    }
278    console.log(`registerEnvironmentCallback callbackId: ${callbackId}`);
279  }
280}
281```
282
283## ApplicationContext.off('environment')
284
285off(type: 'environment', callbackId: number,  callback: AsyncCallback\<void>): void
286
287取消对系统环境变化的监听。使用callback异步回调。仅支持主线程调用。
288
289**原子化服务API**:从API version 11开始,该接口支持在原子化服务中使用。
290
291**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
292
293**参数:**
294
295| 参数名         | 类型     | 必填 | 说明                       |
296| ------------- | -------- | ---- | -------------------------- |
297| type | 'environment' | 是   | 此类型表示系统环境变化,如系统深浅色发生变化。 |
298| callbackId    | number   | 是   | 通过[ApplicationContext.on('environment')](#applicationcontextonenvironment)接口注册监听系统环境变化时返回的ID。 |
299| callback | AsyncCallback\<void> | 是   | 回调方法。当取消对系统环境变化的监听成功,err为undefined,否则为错误对象。   |
300
301**错误码**:
302
303以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)。
304
305| 错误码ID | 错误信息 |
306| ------- | -------- |
307| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. |
308
309**示例:**
310
311```ts
312import { UIAbility } from '@kit.AbilityKit';
313import { BusinessError } from '@kit.BasicServicesKit';
314
315let callbackId: number;
316
317export default class EntryAbility extends UIAbility {
318  onDestroy() {
319    let applicationContext = this.context.getApplicationContext();
320    try {
321      applicationContext.off('environment', callbackId, (error, data) => {
322        if (error) {
323          console.error(`unregisterEnvironmentCallback fail, err: ${JSON.stringify(error)}`);
324        } else {
325          console.log(`unregisterEnvironmentCallback success, data: ${JSON.stringify(data)}`);
326        }
327      });
328    } catch (paramError) {
329      console.error(`error: ${(paramError as BusinessError).code}, ${(paramError as BusinessError).message}`);
330    }
331  }
332}
333```
334
335## ApplicationContext.off('environment')
336
337off(type: 'environment', callbackId: number): Promise\<void\>
338
339取消对系统环境变化的监听。使用Promise异步回调。仅支持主线程调用。
340
341**原子化服务API**:从API version 11开始,该接口支持在原子化服务中使用。
342
343**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
344
345**参数:**
346
347| 参数名         | 类型     | 必填 | 说明                       |
348| ------------- | -------- | ---- | -------------------------- |
349| type | 'environment' | 是   | 此类型表示系统环境变化,如系统深浅色发生变化。 |
350| callbackId    | number   | 是   | 通过[ApplicationContext.on('environment')](#applicationcontextonenvironment)接口注册监听系统环境变化时返回的ID。 |
351
352**返回值:**
353
354| 类型 | 说明 |
355| -------- | -------- |
356| Promise\<void> | 无返回结果的Promise对象。 |
357
358**错误码**:
359
360以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)。
361
362| 错误码ID | 错误信息 |
363| ------- | -------- |
364| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. |
365
366**示例:**
367
368```ts
369import { UIAbility } from '@kit.AbilityKit';
370import { BusinessError } from '@kit.BasicServicesKit';
371
372let callbackId: number;
373
374export default class MyAbility extends UIAbility {
375  onDestroy() {
376    let applicationContext = this.context.getApplicationContext();
377    try {
378      applicationContext.off('environment', callbackId);
379    } catch (paramError) {
380      console.error(`error: ${(paramError as BusinessError).code}, ${(paramError as BusinessError).message}`);
381    }
382  }
383}
384```
385
386## ApplicationContext.on('applicationStateChange')<sup>10+</sup>
387
388on(type: 'applicationStateChange', callback: ApplicationStateChangeCallback): void
389
390注册对当前应用进程状态变化的监听。使用callback异步回调。仅支持主线程调用。
391
392**原子化服务API**:从API version 11开始,该接口支持在原子化服务中使用。
393
394**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
395
396**参数:**
397
398| 参数名   | 类型                                                         | 必填 | 说明             |
399| -------- | ------------------------------------------------------------ | ---- | ---------------- |
400| type     | 'applicationStateChange'                                     | 是   | 此类型表示当前应用进程状态变化。 |
401| callback | [ApplicationStateChangeCallback](js-apis-app-ability-applicationStateChangeCallback.md) | 是   | 当前应用进程状态切换时触发的回调方法。 |
402
403**错误码**:
404
405以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)。
406
407| 错误码ID | 错误信息 |
408| ------- | -------- |
409| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. |
410
411**示例:**
412
413```ts
414import { UIAbility, ApplicationStateChangeCallback } from '@kit.AbilityKit';
415import { BusinessError } from '@kit.BasicServicesKit';
416
417export default class MyAbility extends UIAbility {
418  onCreate() {
419    console.log('MyAbility onCreate');
420    let applicationStateChangeCallback: ApplicationStateChangeCallback = {
421      onApplicationForeground() {
422        console.info('applicationStateChangeCallback onApplicationForeground');
423      },
424      onApplicationBackground() {
425        console.info('applicationStateChangeCallback onApplicationBackground');
426      }
427    }
428
429    // 1.获取applicationContext
430    let applicationContext = this.context.getApplicationContext();
431    try {
432      // 2.通过applicationContext注册当前应用进程状态监听
433      applicationContext.on('applicationStateChange', applicationStateChangeCallback);
434    } catch (paramError) {
435      console.error(`error: ${(paramError as BusinessError).code}, ${(paramError as BusinessError).message}`);
436    }
437    console.log('Register applicationStateChangeCallback');
438  }
439}
440```
441
442## ApplicationContext.off('applicationStateChange')<sup>10+</sup>
443
444off(type: 'applicationStateChange', callback?: ApplicationStateChangeCallback): void
445
446取消对当前应用进程状态变化的监听。使用callback异步回调。仅支持主线程调用。
447
448**原子化服务API**:从API version 11开始,该接口支持在原子化服务中使用。
449
450**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
451
452**参数:**
453
454| 参数名 | 类型          | 必填 | 说明                 |
455| ------ | ------------- | ---- | -------------------- |
456| type   | 'applicationStateChange' | 是   | 此类型表示当前应用进程状态变化。 |
457| callback | [ApplicationStateChangeCallback](js-apis-app-ability-applicationStateChangeCallback.md) | 否   | 回调函数。取值可以为使用[ApplicationContext.on('applicationStateChange')](#applicationcontextonapplicationstatechange10)方法定义的callback回调,也可以为空。<br/>-&nbsp;如果传入已定义的回调,则取消该监听。 <br/>-&nbsp;如果未传入参数,则取消所有已注册的该类型事件的监听。  |
458
459**错误码**:
460
461以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)。
462
463| 错误码ID | 错误信息 |
464| ------- | -------- |
465| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. |
466
467**示例:**
468
469假定已使用[ApplicationContext.on('applicationStateChange')](#applicationcontextonapplicationstatechange10)方法注册名为applicationStateChangeCallback回调,下面示例展示如何取消对应的事件监听。
470
471```ts
472import { UIAbility, ApplicationStateChangeCallback } from '@kit.AbilityKit';
473import { BusinessError } from '@kit.BasicServicesKit';
474
475let applicationStateChangeCallback: ApplicationStateChangeCallback = {
476  onApplicationForeground() {
477    console.info('applicationStateChangeCallback onApplicationForeground');
478  },
479  onApplicationBackground() {
480    console.info('applicationStateChangeCallback onApplicationBackground');
481  }
482};
483
484export default class MyAbility extends UIAbility {
485  onDestroy() {
486    let applicationContext = this.context.getApplicationContext();
487    try {
488      // 本例中的callback字段取值为ApplicationStateChangeCallback,需要替换为实际值。
489      // 如果callback字段不传入参数,则取消所有已注册的该类型事件的监听。
490      applicationContext.off('applicationStateChange', applicationStateChangeCallback);
491    } catch (paramError) {
492      console.error(`error: ${(paramError as BusinessError).code}, ${(paramError as BusinessError).message}`);
493    }
494  }
495}
496```
497
498## ApplicationContext.getRunningProcessInformation
499
500getRunningProcessInformation(): Promise\<Array\<ProcessInformation>>
501
502获取运行中的进程信息。使用Promise异步回调。
503
504**原子化服务API**:从API version 11开始,该接口支持在原子化服务中使用。
505
506**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
507
508**返回值:**
509
510| 类型 | 说明 |
511| -------- | -------- |
512| Promise\<Array\<[ProcessInformation](js-apis-inner-application-processInformation.md)>> | Promise对象,返回接口运行结果及有关运行进程的信息,可进行错误处理或其他自定义处理。 |
513
514**错误码**:
515
516以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。
517
518| 错误码ID | 错误信息 |
519| ------- | -------- |
520| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. |
521| 16000011 | The context does not exist. |
522| 16000050 | Internal error. |
523
524**示例:**
525
526```ts
527import { UIAbility } from '@kit.AbilityKit';
528import { BusinessError } from '@kit.BasicServicesKit';
529
530export default class MyAbility extends UIAbility {
531  onForeground() {
532    let applicationContext = this.context.getApplicationContext();
533    applicationContext.getRunningProcessInformation().then((data) => {
534      console.log(`The process running information is: ${JSON.stringify(data)}`);
535    }).catch((error: BusinessError) => {
536      console.error(`error: ${JSON.stringify(error)}`);
537    });
538  }
539}
540```
541
542## ApplicationContext.getRunningProcessInformation
543
544getRunningProcessInformation(callback: AsyncCallback\<Array\<ProcessInformation>>): void
545
546获取运行中的进程信息。使用callback异步回调。
547
548**原子化服务API**:从API version 11开始,该接口支持在原子化服务中使用。
549
550**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
551
552**参数:**
553
554| 参数名        | 类型     | 必填 | 说明                       |
555| ------------- | -------- | ---- | -------------------------- |
556| callback    | AsyncCallback\<Array\<[ProcessInformation](js-apis-inner-application-processInformation.md)>>   | 是   | 回调函数,返回有关运行进程的信息。 |
557
558**错误码**:
559
560以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。
561
562| 错误码ID | 错误信息 |
563| ------- | -------- |
564| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. |
565| 16000011 | The context does not exist. |
566| 16000050 | Internal error. |
567
568**示例:**
569
570```ts
571import { UIAbility } from '@kit.AbilityKit';
572
573export default class MyAbility extends UIAbility {
574  onForeground() {
575    let applicationContext = this.context.getApplicationContext();
576    applicationContext.getRunningProcessInformation((err, data) => {
577      if (err) {
578        console.error(`getRunningProcessInformation failed, err: ${JSON.stringify(err)}`);
579      } else {
580        console.log(`The process running information is: ${JSON.stringify(data)}`);
581      }
582    })
583  }
584}
585```
586
587## ApplicationContext.killAllProcesses
588
589killAllProcesses(): Promise\<void\>
590
591终止应用的所有进程,进程退出时不会正常执行完整的应用生命周期流程。使用Promise异步回调。仅支持主线程调用。
592
593> **说明:**
594>
595> 该接口用于应用异常场景中强制退出应用。如需正常退出应用,可以使用[terminateSelf()](js-apis-inner-application-uiAbilityContext.md#terminateself-1)接口。
596
597**原子化服务API**:从API version 11开始,该接口支持在原子化服务中使用。
598
599**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
600
601**返回值:**
602
603| 类型 | 说明 |
604| -------- | -------- |
605| Promise\<void\> | 无返回结果的Promise对象。 |
606
607**错误码**:
608
609以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。
610
611| 错误码ID | 错误信息 |
612| ------- | -------- |
613| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. |
614| 16000011 | The context does not exist. |
615
616**示例:**
617
618```ts
619import { UIAbility } from '@kit.AbilityKit';
620
621export default class MyAbility extends UIAbility {
622  onBackground() {
623    let applicationContext = this.context.getApplicationContext();
624    applicationContext.killAllProcesses();
625  }
626}
627```
628
629## ApplicationContext.killAllProcesses<sup>14+</sup>
630
631killAllProcesses(clearPageStack: boolean): Promise\<void\>
632
633终止应用的所有进程,进程退出时不会正常执行完整的应用生命周期流程。使用Promise异步回调。仅支持主线程调用。
634
635> **说明:**
636>
637> 该接口用于应用异常场景中强制退出应用。如需正常退出应用,可以使用[terminateSelf()](js-apis-inner-application-uiAbilityContext.md#terminateself-1)接口。
638
639**原子化服务API**:从API version 14开始,该接口支持在原子化服务中使用。
640
641**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
642
643**参数:**
644
645| 参数名 | 类型 | 必填 | 说明 |
646| -------- | -------- | -------- | -------- |
647| clearPageStack | boolean | 是 | 表示是否清除页面堆栈。true表示清除,false表示不清除。 |
648
649**返回值:**
650
651| 类型 | 说明 |
652| -------- | -------- |
653| Promise\<void\> | 无返回结果的Promise对象。 |
654
655**错误码**:
656
657以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。
658
659| 错误码ID | 错误信息 |
660| ------- | -------- |
661| 401 | If the input parameter is not valid parameter. |
662| 16000011 | The context does not exist. |
663
664**示例:**
665
666```ts
667import { UIAbility } from '@kit.AbilityKit';
668
669let isClearPageStack = false;
670
671export default class MyAbility extends UIAbility {
672  onBackground() {
673    let applicationContext = this.context.getApplicationContext();
674    applicationContext.killAllProcesses(isClearPageStack);
675  }
676}
677```
678
679## ApplicationContext.killAllProcesses
680
681killAllProcesses(callback: AsyncCallback\<void\>)
682
683终止应用的所有进程,进程退出时不会正常执行完整的应用生命周期流程。使用callback异步回调。仅支持主线程调用。
684
685> **说明:**
686>
687> 该接口用于应用异常场景中强制退出应用。如需正常退出应用,可以使用[terminateSelf()](js-apis-inner-application-uiAbilityContext.md#terminateself-1)接口。
688
689**原子化服务API**:从API version 11开始,该接口支持在原子化服务中使用。
690
691**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
692
693**参数:**
694
695| 参数名        | 类型     | 必填 | 说明                       |
696| ------------- | -------- | ---- | -------------------------- |
697| callback    | AsyncCallback\<void\>   | 是   | 回调函数。当终止应用所在的进程成功,err为undefined,否则为错误对象。 |
698
699**错误码**:
700
701以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。
702
703| 错误码ID | 错误信息 |
704| ------- | -------- |
705| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. |
706| 16000011 | The context does not exist. |
707
708**示例:**
709
710```ts
711import { UIAbility } from '@kit.AbilityKit';
712
713export default class MyAbility extends UIAbility {
714  onBackground() {
715    let applicationContext = this.context.getApplicationContext();
716    applicationContext.killAllProcesses(error => {
717      if (error) {
718        console.error(`killAllProcesses fail, error: ${JSON.stringify(error)}`);
719      }
720    });
721  }
722}
723```
724## ApplicationContext.setColorMode<sup>11+</sup>
725
726setColorMode(colorMode: ConfigurationConstant.ColorMode): void
727
728设置应用的深浅色模式。仅支持主线程调用。
729
730> **说明:**
731>
732> 调用该接口前,需要确保窗口已完成创建、且UIAbility对应的页面已完成加载,即在[onWindowStageCreate()](js-apis-app-ability-uiAbility.md#onwindowstagecreate)生命周期中通过[loadContent](../apis-arkui/arkts-apis-window-WindowStage.md#loadcontent9)方法加载页面之后调用。
733
734**原子化服务API**:从API version 11开始,该接口支持在原子化服务中使用。
735
736**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
737
738**参数:**
739
740| 参数名 | 类型          | 必填 | 说明                 |
741| ------ | ------------- | ---- | -------------------- |
742| colorMode | [ConfigurationConstant.ColorMode](js-apis-app-ability-configurationConstant.md#colormode) | 是   | 深浅色模式,包括:深色模式、浅色模式、跟随系统模式(默认)。 |
743
744**错误码**:
745
746以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。
747
748| 错误码ID | 错误信息 |
749| ------- | -------- |
750| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. |
751| 16000011 | The context does not exist. |
752
753**示例:**
754
755```ts
756import { UIAbility, ConfigurationConstant } from '@kit.AbilityKit';
757import { window } from '@kit.ArkUI';
758
759export default class MyAbility extends UIAbility {
760  onWindowStageCreate(windowStage: window.WindowStage) {
761    console.info("Ability onWindowStageCreate");
762    windowStage.loadContent('pages/Index', (err, data) => {
763      if (err.code) {
764        console.error(`Failed to load the content. Code: ${err.code}, message: ${err.message}`);
765        return;
766      }
767      console.info(`Succeeded in loading the content. Data: ${JSON.stringify(data)}`);
768    });
769    let applicationContext = this.context.getApplicationContext();
770    applicationContext.setColorMode(ConfigurationConstant.ColorMode.COLOR_MODE_DARK);
771  }
772}
773```
774
775## ApplicationContext.setLanguage<sup>11+</sup>
776
777setLanguage(language: string): void
778
779设置应用的语言。仅支持主线程调用。
780
781> **说明:**
782>
783> 调用该接口前,需要确保窗口已完成创建、且UIAbility对应的页面已完成加载,即在[onWindowStageCreate()](js-apis-app-ability-uiAbility.md#onwindowstagecreate)生命周期中通过[loadContent](../apis-arkui/arkts-apis-window-WindowStage.md#loadcontent9)方法加载页面之后调用。
784
785**原子化服务API**:从API version 11开始,该接口支持在原子化服务中使用。
786
787**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
788
789**参数:**
790
791| 参数名 | 类型          | 必填 | 说明                 |
792| ------ | ------------- | ---- | -------------------- |
793| language | string | 是   | 设置语言,当前支持的语言列表可以通过[getSystemLanguages()](../apis-localization-kit/js-apis-i18n.md#getsystemlanguages9)获取。  |
794
795**错误码**:
796
797以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。
798
799| 错误码ID | 错误信息 |
800| ------- | -------- |
801| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. |
802| 16000011 | The context does not exist. |
803
804
805**示例:**
806
807```ts
808import { UIAbility } from '@kit.AbilityKit';
809import { window } from '@kit.ArkUI';
810
811export default class MyAbility extends UIAbility {
812  onWindowStageCreate(windowStage: window.WindowStage) {
813    console.info("Ability onWindowStageCreate");
814    windowStage.loadContent('pages/Index', (err, data) => {
815      if (err.code) {
816        console.error(`Failed to load the content. Code: ${err.code}, message: ${err.message}`);
817        return;
818      }
819      console.info(`Succeeded in loading the content. Data: ${JSON.stringify(data)}`);
820    });
821    let applicationContext = this.context.getApplicationContext();
822    applicationContext.setLanguage('zh-cn');
823  }
824}
825```
826
827## ApplicationContext.clearUpApplicationData<sup>11+</sup>
828
829clearUpApplicationData(): Promise\<void\>
830
831清理当前应用的数据,同时撤销应用向用户申请的权限。使用Promise异步回调。仅支持主线程调用。
832
833> **说明:**
834>
835> 该接口会停止应用进程,应用进程停止后,后续的所有回调都不会再触发。
836
837**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
838
839**返回值:**
840
841| 类型 | 说明 |
842| -------- | -------- |
843| Promise\<void\> | 无返回结果的Promise对象。 |
844
845**错误码**:
846
847以下错误码详细介绍请参考[元能力子系统错误码](errorcode-ability.md)。
848
849| 错误码ID | 错误信息 |
850| ------- | -------- |
851| 16000011 | The context does not exist. |
852| 16000050 | Internal error. |
853
854**示例:**
855
856```ts
857import { UIAbility } from '@kit.AbilityKit';
858
859export default class MyAbility extends UIAbility {
860  onBackground() {
861    let applicationContext = this.context.getApplicationContext();
862    applicationContext.clearUpApplicationData();
863  }
864}
865```
866
867## ApplicationContext.clearUpApplicationData<sup>11+</sup>
868
869clearUpApplicationData(callback: AsyncCallback\<void\>): void
870
871清理当前应用的数据,同时撤销应用向用户申请的权限。使用callback异步回调。仅支持主线程调用。
872
873> **说明:**
874>
875> 该接口会停止应用进程,应用进程停止后,后续的所有回调都不会再触发。
876
877**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
878
879**参数:**
880| 参数名        | 类型     | 必填 | 说明                       |
881| ------------- | -------- | ---- | -------------------------- |
882| callback | AsyncCallback\<void> | 是   | 回调方法。清理应用本身的数据成功时,error为undefined,否则返回错误对象。  |
883
884**错误码**:
885
886以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。
887
888| 错误码ID | 错误信息 |
889| ------- | -------- |
890| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. |
891| 16000011 | The context does not exist. |
892| 16000050 | Internal error. |
893
894**示例:**
895
896```ts
897import { UIAbility } from '@kit.AbilityKit';
898
899export default class MyAbility extends UIAbility {
900  onBackground() {
901    let applicationContext = this.context.getApplicationContext();
902    applicationContext.clearUpApplicationData(error => {
903      if (error) {
904        console.error(`clearUpApplicationData fail, error: ${JSON.stringify(error)}`);
905      }
906    });
907  }
908}
909```
910
911## ApplicationContext.restartApp<sup>12+</sup>
912
913restartApp(want: Want): void
914
915应用重启并拉起自身指定UIAbility。重启时不会收到onDestroy回调。仅支持主线程调用,且待重启的应用需要处于获焦状态。
916
917**原子化服务API**:从API version 12开始,该接口支持在原子化服务中使用。
918
919**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
920
921**参数:**
922| 参数名        | 类型     | 必填 | 说明                       |
923| ------------- | -------- | ---- | -------------------------- |
924| want | [Want](js-apis-app-ability-want.md) | 是 | Want类型参数,传入需要启动的UIAbility的信息,Bundle名称不做校验。 |
925
926**错误码**:
927
928以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。
929
930| 错误码ID | 错误信息 |
931| ------- | -------- |
932| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. |
933| 16000050 | Internal error. |
934| 16000053 | The ability is not on the top of the UI. |
935| 16000063 | The target to restart does not belong to the current application or is not a UIAbility. |
936| 16000064 | Restart too frequently. Try again at least 3s later. |
937
938**示例:**
939
940```ts
941import { UIAbility, Want } from '@kit.AbilityKit';
942
943export default class MyAbility extends UIAbility {
944  onForeground() {
945    let applicationContext = this.context.getApplicationContext();
946    let want: Want = {
947      bundleName: 'com.example.myapp',
948      abilityName: 'EntryAbility'
949    };
950    try {
951      applicationContext.restartApp(want);
952    } catch (error) {
953      console.error(`restartApp fail, error: ${JSON.stringify(error)}`);
954    }
955  }
956}
957```
958
959## ApplicationContext.getCurrentAppCloneIndex<sup>12+</sup>
960
961getCurrentAppCloneIndex(): number
962
963获取当前应用的分身索引。
964
965**原子化服务API**:从API version 12开始,该接口支持在原子化服务中使用。
966
967**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
968
969**返回值:**
970
971| 类型 | 说明 |
972| -------- | -------- |
973| number | 当前应用的分身索引。 |
974
975**错误码**:
976
977| 错误码ID | 错误信息 |
978| ------- | -------- |
979| 16000011 | The context does not exist. |
980| 16000071 | App clone is not supported. |
981
982以上错误码详细介绍请参考[元能力子系统错误码](errorcode-ability.md)。
983
984**示例:**
985
986```ts
987import { UIAbility } from '@kit.AbilityKit';
988
989export default class MyAbility extends UIAbility {
990  onBackground() {
991    let applicationContext = this.context.getApplicationContext();
992    try {
993      let appCloneIndex = applicationContext.getCurrentAppCloneIndex();
994    } catch (error) {
995      console.error(`getCurrentAppCloneIndex fail, error: ${JSON.stringify(error)}`);
996    }
997  }
998}
999```
1000
1001## ApplicationContext.setFont<sup>12+</sup>
1002
1003setFont(font: string): void
1004
1005设置应用的字体类型。仅支持主线程调用。
1006
1007> **说明:**
1008>
1009> 调用该接口前,需要确保窗口已完成创建、且UIAbility对应的页面已完成加载,即在[onWindowStageCreate()](js-apis-app-ability-uiAbility.md#onwindowstagecreate)生命周期中通过[loadContent](../apis-arkui/arkts-apis-window-WindowStage.md#loadcontent9)方法加载页面之后调用。
1010
1011**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
1012
1013**参数:**
1014
1015| 参数名 | 类型          | 必填 | 说明                 |
1016| ------ | ------------- | ---- | -------------------- |
1017| font | string | 是   | 设置字体类型,字体可以通过[UIContext.registerFont](../apis-arkui/arkts-apis-uicontext-font.md#registerfont)方法进行注册使用。  |
1018
1019**错误码**:
1020
1021以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。
1022
1023| 错误码ID | 错误信息 |
1024| ------- | -------- |
1025| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. |
1026| 16000011 | The context does not exist. |
1027| 16000050 | Internal error. |
1028
1029
1030**示例:**
1031
1032```ts
1033import { common } from '@kit.AbilityKit';
1034
1035@Entry
1036@Component
1037struct Index {
1038  @State message: string = 'Hello World';
1039  context = this.getUIContext().getHostContext() as common.UIAbilityContext;
1040
1041  aboutToAppear() {
1042    this.getUIContext().getFont().registerFont({
1043      familyName: 'fontName',
1044      familySrc: $rawfile('font/medium.ttf')  // 'font/medium.ttf'仅作为示例,实际使用时请替换为真实的字体资源文件。
1045    });
1046
1047    this.context.getApplicationContext().setFont('fontName');
1048  }
1049
1050  build() {
1051    Row() {
1052      Column() {
1053        Text(this.message)
1054          .fontSize(50)
1055          .fontWeight(50)
1056      }
1057      .width('100%')
1058    }
1059    .height('100%')
1060  }
1061}
1062```
1063
1064## ApplicationContext.setSupportedProcessCache<sup>12+</sup>
1065
1066setSupportedProcessCache(isSupported : boolean): void
1067
1068设置当前应用进程是否支持进程资源的缓存,便于应用再次启动时复用缓存的进程资源。仅支持主线程调用。
1069
1070该接口仅对单个进程实例生效,不同进程实例互不影响。应用进程实例销毁后,已设置的状态不保留,需要重新设置。
1071
1072> **说明:**
1073> - 该接口仅表示应用自身是否为缓存后快速启动做好了准备,还需综合其他条件来判断最终是否为应用启用快速启动。
1074> - 为了确保该接口在进程退出前生效,调用时机应尽量提前。建议在[AbilityStage](../../reference/apis-ability-kit/js-apis-app-ability-abilityStage.md)的`onCreate()`中调用该接口。
1075> - 在同一进程多次调用该接口时,会以最后一次调用的结果为准。当存在多个AbilityStage时,为了确保结果符合预期,需要在各个AbilityStage中分别调用该接口并配置相同的取值。
1076
1077**模型约束**:此接口仅可在Stage模型下使用。
1078
1079**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
1080
1081**设备行为差异**:该接口仅在Phone和2in1设备中可正常调用,在其他设备中返回801错误码。
1082
1083**参数:**
1084| 参数名        | 类型     | 必填 | 说明                       |
1085| ------------- | -------- | ---- | -------------------------- |
1086| isSupported | boolean | 是 | 表示应用是否支持进程资源的缓存。true表示支持,false表示不支持。 |
1087
1088**错误码**:
1089
1090以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)、[元能力子系统错误码](errorcode-ability.md)。
1091
1092| 错误码ID | 错误信息 |
1093| ------- | -------- |
1094| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. |
1095| 801      | Capability not supported.|
1096| 16000011 | The context does not exist. |
1097| 16000050 | Internal error. |
1098
1099**示例:**
1100
1101```ts
1102import { AbilityStage, Want } from '@kit.AbilityKit';
1103import { BusinessError } from '@kit.BasicServicesKit';
1104
1105class MyAbilityStage extends AbilityStage {
1106  onCreate() {
1107    let applicationContext = this.context.getApplicationContext();
1108    try {
1109      applicationContext.setSupportedProcessCache(true);
1110    } catch (error) {
1111      let code = (error as BusinessError).code;
1112      let message = (error as BusinessError).message;
1113      console.error(`setSupportedProcessCache fail, code: ${code}, msg: ${message}`);
1114    }
1115  }
1116}
1117```
1118
1119
1120## ApplicationContext.setFontSizeScale<sup>13+</sup>
1121
1122setFontSizeScale(fontSizeScale: number): void
1123
1124设置应用字体大小缩放比例。仅支持主线程调用。
1125
1126**原子化服务API**:从API version 13开始,该接口支持在原子化服务中使用。
1127
1128**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
1129
1130**参数:**
1131
1132| 参数名 | 类型          | 必填 | 说明                 |
1133| ------ | ------------- | ---- | -------------------- |
1134| fontSizeScale | number | 是   | 表示字体缩放比例,取值为非负数。当应用字体[跟随系统](../../quick-start/app-configuration-file.md#configuration标签)且该字段取值超过[fontSizeMaxScale](../../quick-start/app-configuration-file.md#configuration标签)取值时,实际生效值为[fontSizeMaxScale](../../quick-start/app-configuration-file.md#configuration标签)取值。|
1135
1136**错误码**:
1137
1138以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)。
1139
1140| 错误码ID | 错误信息 |
1141| ------- | -------- |
1142| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. |
1143
1144**示例:**
1145
1146```ts
1147import { UIAbility } from '@kit.AbilityKit';
1148import { window } from '@kit.ArkUI';
1149
1150export default class MyAbility extends UIAbility {
1151  onWindowStageCreate(windowStage: window.WindowStage) {
1152    windowStage.loadContent('pages/Index', (err, data) => {
1153      if (err.code) {
1154        return;
1155      }
1156      let applicationContext = this.context.getApplicationContext();
1157      applicationContext.setFontSizeScale(2);
1158    });
1159  }
1160}
1161```
1162
1163
1164## ApplicationContext.getCurrentInstanceKey<sup>14+</sup>
1165
1166getCurrentInstanceKey(): string
1167
1168获取当前应用多实例的唯一实例标识。仅支持主线程调用。
1169
1170**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
1171
1172**设备行为差异**:该接口仅在2in1设备中可正常调用,在其他设备中返回16000078错误码。
1173
1174**返回值:**
1175
1176| 类型   | 说明                           |
1177| ------ | ------------------------------ |
1178| string | 返回当前应用多实例的唯一实例标识。|
1179
1180**错误码**:
1181
1182以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)。
1183
1184| 错误码ID | 错误信息 |
1185| ------- | -------- |
1186| 16000011 | The context does not exist. |
1187| 16000078 | The multi-instance is not supported. |
1188
1189**示例:**
1190
1191```ts
1192import { AbilityStage } from '@kit.AbilityKit';
1193import { BusinessError } from '@kit.BasicServicesKit';
1194
1195class MyAbilityStage extends AbilityStage {
1196  onCreate() {
1197    let applicationContext = this.context.getApplicationContext();
1198    let currentInstanceKey = '';
1199    try {
1200      currentInstanceKey = applicationContext.getCurrentInstanceKey();
1201    } catch (error) {
1202      let code = (error as BusinessError).code;
1203      let message = (error as BusinessError).message;
1204      console.error(`getCurrentInstanceKey fail, code: ${code}, msg: ${message}`);
1205    }
1206    console.log(`currentInstanceKey: ${currentInstanceKey}`);
1207  }
1208}
1209```
1210
1211## ApplicationContext.getAllRunningInstanceKeys<sup>14+</sup>
1212
1213getAllRunningInstanceKeys(): Promise\<Array\<string>>;
1214
1215获取应用的所有多实例的唯一实例标识。使用Promise异步回调。仅支持主线程调用。
1216
1217**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
1218
1219**返回值:**
1220
1221| 类型   | 说明                           |
1222| ------ | ------------------------------ |
1223| Promise\<Array\<string>> | Promise对象,返回应用的所有多实例的唯一实例标识。|
1224
1225**错误码**:
1226
1227以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)。
1228
1229| 错误码ID | 错误信息 |
1230| ------- | -------- |
1231| 16000011 | The context does not exist. |
1232| 16000050 | Internal error. |
1233| 16000078 | The multi-instance is not supported. |
1234
1235**示例:**
1236
1237```ts
1238import { AbilityStage } from '@kit.AbilityKit';
1239import { BusinessError } from '@kit.BasicServicesKit';
1240
1241class MyAbilityStage extends AbilityStage {
1242  onCreate() {
1243    let applicationContext = this.context.getApplicationContext();
1244    try {
1245      applicationContext.getAllRunningInstanceKeys();
1246    } catch (error) {
1247      let code = (error as BusinessError).code;
1248      let message = (error as BusinessError).message;
1249      console.error(`getAllRunningInstanceKeys fail, code: ${code}, msg: ${message}`);
1250    }
1251  }
1252}
1253```
1254