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/>- 如果传入已定义的回调,则取消该监听。 <br/>- 如果未传入参数,则取消所有已注册的该类型事件的监听。 | 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