文档管理中心
您当前正在浏览HarmonyOS最新文档,覆盖已发布的所有API版本,可在API参考中筛选您使用的API版本。详细的版本配套关系请参考版本说明
API参考应用框架Ability Kit(程序框架服务)ArkTS API接口依赖的元素及定义applicationApplicationContext (应用上下文)

ApplicationContext (应用上下文)

ApplicationContext作为应用上下文,继承自Context,提供了应用生命周期监听、进程管理、应用环境设置等应用级别的管控能力。

说明

本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。

本模块接口仅可在Stage模型下使用。

导入模块

PhonePC/2in1TabletTVWearable
收起
自动换行
深色代码主题
复制
  1. import { common } from '@kit.AbilityKit';

ApplicationContext.on('abilityLifecycle')

PhonePC/2in1TabletTVWearable

on(type: 'abilityLifecycle', callback: AbilityLifecycleCallback): number

注册监听应用内UIAbility的生命周期。使用callback异步回调。仅支持主线程调用。

元服务API:从API version 11开始,该接口支持在元服务中使用。

系统能力:SystemCapability.Ability.AbilityRuntime.Core

参数:

展开
参数名 类型 必填 说明
type string 此类型表示应用内UIAbility的生命周期,固定为'abilityLifecycle'。
callback AbilityLifecycleCallback UIAbility生命周期变化时触发的回调方法。

返回值:

展开
类型 说明
number 返回此次注册的callbackID,该ID用于在ApplicationContext.off('abilityLifecycle')方法中取消注册对应的callback。

错误码

以下错误码详细介绍请参考通用错误码

展开
错误码ID 错误信息
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types.

示例:

收起
自动换行
深色代码主题
复制
  1. import { UIAbility, AbilityLifecycleCallback } from '@kit.AbilityKit';
  2. import { BusinessError } from '@kit.BasicServicesKit';
  3. let lifecycleId: number;
  4. export default class EntryAbility extends UIAbility {
  5. onCreate() {
  6. console.info('MyAbility onCreate');
  7. let AbilityLifecycleCallback: AbilityLifecycleCallback = {
  8. onAbilityCreate(ability) {
  9. console.info(`AbilityLifecycleCallback onAbilityCreate ability: ${ability}`);
  10. },
  11. onWindowStageCreate(ability, windowStage) {
  12. console.info(`AbilityLifecycleCallback onWindowStageCreate ability: ${ability}`);
  13. console.info(`AbilityLifecycleCallback onWindowStageCreate windowStage: ${windowStage}`);
  14. },
  15. onWindowStageActive(ability, windowStage) {
  16. console.info(`AbilityLifecycleCallback onWindowStageActive ability: ${ability}`);
  17. console.info(`AbilityLifecycleCallback onWindowStageActive windowStage: ${windowStage}`);
  18. },
  19. onWindowStageInactive(ability, windowStage) {
  20. console.info(`AbilityLifecycleCallback onWindowStageInactive ability: ${ability}`);
  21. console.info(`AbilityLifecycleCallback onWindowStageInactive windowStage: ${windowStage}`);
  22. },
  23. onWindowStageDestroy(ability, windowStage) {
  24. console.info(`AbilityLifecycleCallback onWindowStageDestroy ability: ${ability}`);
  25. console.info(`AbilityLifecycleCallback onWindowStageDestroy windowStage: ${windowStage}`);
  26. },
  27. onAbilityDestroy(ability) {
  28. console.info(`AbilityLifecycleCallback onAbilityDestroy ability: ${ability}`);
  29. },
  30. onAbilityForeground(ability) {
  31. console.info(`AbilityLifecycleCallback onAbilityForeground ability: ${ability}`);
  32. },
  33. onAbilityBackground(ability) {
  34. console.info(`AbilityLifecycleCallback onAbilityBackground ability: ${ability}`);
  35. },
  36. onAbilityContinue(ability) {
  37. console.info(`AbilityLifecycleCallback onAbilityContinue ability: ${ability}`);
  38. }
  39. }
  40. // 1.通过context属性获取applicationContext
  41. let applicationContext = this.context.getApplicationContext();
  42. try {
  43. // 2.通过applicationContext注册监听应用内生命周期
  44. lifecycleId = applicationContext.on('abilityLifecycle', AbilityLifecycleCallback);
  45. } catch (paramError) {
  46. console.error(`error code: ${(paramError as BusinessError).code}, error msg: ${(paramError as BusinessError).message}`);
  47. }
  48. console.info(`registerAbilityLifecycleCallback lifecycleId: ${lifecycleId}`);
  49. }
  50. }

ApplicationContext.off('abilityLifecycle')

PhonePC/2in1TabletTVWearable

off(type: 'abilityLifecycle', callbackId: number, callback: AsyncCallback<void>): void

取消监听应用内UIAbility的生命周期。使用callback异步回调。仅支持主线程调用。

元服务API:从API version 11开始,该接口支持在元服务中使用。

系统能力:SystemCapability.Ability.AbilityRuntime.Core

参数:

展开
参数名 类型 必填 说明
type string 此类型表示应用内UIAbility的生命周期,固定为'abilityLifecycle'。
callbackId number 通过ApplicationContext.on('abilityLifecycle')接口注册监听应用内UIAbility的生命周期时返回的ID。
callback AsyncCallback<void> 回调方法。当取消监听应用内生命周期成功,err为undefined,否则为错误对象。

错误码

以下错误码详细介绍请参考通用错误码

展开
错误码ID 错误信息
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types.

示例:

收起
自动换行
深色代码主题
复制
  1. import { UIAbility } from '@kit.AbilityKit';
  2. import { BusinessError } from '@kit.BasicServicesKit';
  3. let lifecycleId: number;
  4. export default class EntryAbility extends UIAbility {
  5. onDestroy() {
  6. let applicationContext = this.context.getApplicationContext();
  7. console.info(`stage applicationContext: ${applicationContext}`);
  8. try {
  9. applicationContext.off('abilityLifecycle', lifecycleId, (error, data) => {
  10. if (error) {
  11. console.error(`unregisterAbilityLifecycleCallback fail, err: ${JSON.stringify(error)}`);
  12. } else {
  13. console.info(`unregisterAbilityLifecycleCallback success, data: ${JSON.stringify(data)}`);
  14. }
  15. });
  16. } catch (paramError) {
  17. console.error(`error code: ${(paramError as BusinessError).code}, error code: ${(paramError as BusinessError).message}`);
  18. }
  19. }
  20. }

ApplicationContext.off('abilityLifecycle')

PhonePC/2in1TabletTVWearable

off(type: 'abilityLifecycle', callbackId: number): Promise<void>

取消监听应用内UIAbility的生命周期。使用Promise异步回调。仅支持主线程调用。

元服务API:从API version 11开始,该接口支持在元服务中使用。

系统能力:SystemCapability.Ability.AbilityRuntime.Core

参数:

展开
参数名 类型 必填 说明
type string 此类型表示应用内UIAbility的生命周期,固定为'abilityLifecycle'。
callbackId number 通过ApplicationContext.on('abilityLifecycle')接口注册监听应用内UIAbility的生命周期时返回的ID。

返回值:

展开
类型 说明
Promise<void> Promise对象,无返回结果。

错误码

以下错误码详细介绍请参考通用错误码

展开
错误码ID 错误信息
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types.

示例:

收起
自动换行
深色代码主题
复制
  1. import { UIAbility } from '@kit.AbilityKit';
  2. import { BusinessError } from '@kit.BasicServicesKit';
  3. let lifecycleId: number;
  4. export default class MyAbility extends UIAbility {
  5. onDestroy() {
  6. let applicationContext = this.context.getApplicationContext();
  7. console.info(`stage applicationContext: ${applicationContext}`);
  8. try {
  9. applicationContext.off('abilityLifecycle', lifecycleId);
  10. } catch (paramError) {
  11. console.error(`error code: ${(paramError as BusinessError).code}, error msg: ${(paramError as BusinessError).message}`);
  12. }
  13. }
  14. }

ApplicationContext.on('environment')

PhonePC/2in1TabletTVWearable

on(type: 'environment', callback: EnvironmentCallback): number

注册对系统环境变化的监听。使用callback异步回调。仅支持主线程调用。

说明
  • 使用onConfigurationUpdate也可以实现对系统环境变量的监听。相较于Ability的onConfigurationUpdate接口,当前接口的使用场景更加灵活,不仅可以在应用组件中使用,还可以在页面中使用,但是支持订阅的环境变量与Ability的onConfigurationUpdate接口存在差异,如不支持订阅direction、screenDensity、displayId,详见Configuration中各个环境变量的说明。
  • 当前接口在实际触发时存在一定限制。例如如果开发者通过setLanguage接口设置应用的语言,即便系统语言发生变化,系统也不再触发当前接口的callback回调。详见使用场景

元服务API:从API version 11开始,该接口支持在元服务中使用。

系统能力:SystemCapability.Ability.AbilityRuntime.Core

参数:

展开
参数名 类型 必填 说明
type string 此类型表示系统环境变化,如系统深浅色发生变化,固定为'environment'。
callback EnvironmentCallback 系统环境变化时触发的回调方法。

返回值:

展开
类型 说明
number 返回此次注册的callbackID,该ID用于在ApplicationContext.off('environment')方法中取消注册对应的callback。

错误码

以下错误码详细介绍请参考通用错误码

展开
错误码ID 错误信息
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types.

示例:

收起
自动换行
深色代码主题
复制
  1. import { UIAbility, EnvironmentCallback } from '@kit.AbilityKit';
  2. import { BusinessError } from '@kit.BasicServicesKit';
  3. let callbackId: number;
  4. export default class EntryAbility extends UIAbility {
  5. onCreate() {
  6. console.info('MyAbility onCreate')
  7. let environmentCallback: EnvironmentCallback = {
  8. onConfigurationUpdated(config) {
  9. console.info(`onConfigurationUpdated config: ${JSON.stringify(config)}`);
  10. },
  11. onMemoryLevel(level) {
  12. console.info(`onMemoryLevel level: ${level}`);
  13. }
  14. };
  15. // 1.获取applicationContext
  16. let applicationContext = this.context.getApplicationContext();
  17. try {
  18. // 2.通过applicationContext注册监听系统环境变化
  19. callbackId = applicationContext.on('environment', environmentCallback);
  20. } catch (paramError) {
  21. console.error(`error code: ${(paramError as BusinessError).code}, error msg: ${(paramError as BusinessError).message}`);
  22. }
  23. console.info(`registerEnvironmentCallback callbackId: ${callbackId}`);
  24. }
  25. }

ApplicationContext.off('environment')

PhonePC/2in1TabletTVWearable

off(type: 'environment', callbackId: number, callback: AsyncCallback<void>): void

取消对系统环境变化的监听。使用callback异步回调。仅支持主线程调用。

元服务API:从API version 11开始,该接口支持在元服务中使用。

系统能力:SystemCapability.Ability.AbilityRuntime.Core

参数:

展开
参数名 类型 必填 说明
type string 此类型表示系统环境变化,如系统深浅色发生变化,固定为'environment'。
callbackId number 通过ApplicationContext.on('environment')接口注册监听系统环境变化时返回的ID。
callback AsyncCallback<void> 回调方法。当取消对系统环境变化的监听成功,err为undefined,否则为错误对象。

错误码

以下错误码详细介绍请参考通用错误码

展开
错误码ID 错误信息
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types.

示例:

收起
自动换行
深色代码主题
复制
  1. import { UIAbility } from '@kit.AbilityKit';
  2. import { BusinessError } from '@kit.BasicServicesKit';
  3. let callbackId: number;
  4. export default class EntryAbility extends UIAbility {
  5. onDestroy() {
  6. let applicationContext = this.context.getApplicationContext();
  7. try {
  8. applicationContext.off('environment', callbackId, (error, data) => {
  9. if (error) {
  10. console.error(`unregisterEnvironmentCallback fail, err: ${JSON.stringify(error)}`);
  11. } else {
  12. console.info(`unregisterEnvironmentCallback success, data: ${JSON.stringify(data)}`);
  13. }
  14. });
  15. } catch (paramError) {
  16. console.error(`error code: ${(paramError as BusinessError).code}, error msg: ${(paramError as BusinessError).message}`);
  17. }
  18. }
  19. }

ApplicationContext.off('environment')

PhonePC/2in1TabletTVWearable

off(type: 'environment', callbackId: number): Promise<void>

取消对系统环境变化的监听。使用Promise异步回调。仅支持主线程调用。

元服务API:从API version 11开始,该接口支持在元服务中使用。

系统能力:SystemCapability.Ability.AbilityRuntime.Core

参数:

展开
参数名 类型 必填 说明
type string 此类型表示系统环境变化,如系统深浅色发生变化,固定为'environment'。
callbackId number 通过ApplicationContext.on('environment')接口注册监听系统环境变化时返回的ID。

返回值:

展开
类型 说明
Promise<void> Promise对象,无返回结果。

错误码

以下错误码详细介绍请参考通用错误码

展开
错误码ID 错误信息
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types.

示例:

收起
自动换行
深色代码主题
复制
  1. import { UIAbility } from '@kit.AbilityKit';
  2. import { BusinessError } from '@kit.BasicServicesKit';
  3. let callbackId: number;
  4. export default class MyAbility extends UIAbility {
  5. onDestroy() {
  6. let applicationContext = this.context.getApplicationContext();
  7. try {
  8. applicationContext.off('environment', callbackId);
  9. } catch (paramError) {
  10. console.error(`error: ${(paramError as BusinessError).code}, ${(paramError as BusinessError).message}`);
  11. }
  12. }
  13. }

ApplicationContext.on('applicationStateChange')10+

PhonePC/2in1TabletTVWearable

on(type: 'applicationStateChange', callback: ApplicationStateChangeCallback): void

注册对当前应用进程状态变化的监听。使用callback异步回调。仅支持主线程调用。

元服务API:从API version 11开始,该接口支持在元服务中使用。

系统能力:SystemCapability.Ability.AbilityRuntime.Core

参数:

展开
参数名 类型 必填 说明
type string 此类型表示当前应用进程状态变化,固定为'applicationStateChange'。
callback ApplicationStateChangeCallback 当前应用进程状态切换时触发的回调方法。

错误码

以下错误码详细介绍请参考通用错误码

展开
错误码ID 错误信息
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types.

示例:

收起
自动换行
深色代码主题
复制
  1. import { UIAbility, ApplicationStateChangeCallback } from '@kit.AbilityKit';
  2. import { BusinessError } from '@kit.BasicServicesKit';
  3. export default class MyAbility extends UIAbility {
  4. onCreate() {
  5. console.info('MyAbility onCreate');
  6. let applicationStateChangeCallback: ApplicationStateChangeCallback = {
  7. onApplicationForeground() {
  8. console.info('applicationStateChangeCallback onApplicationForeground');
  9. },
  10. onApplicationBackground() {
  11. console.info('applicationStateChangeCallback onApplicationBackground');
  12. }
  13. }
  14. // 1.获取applicationContext
  15. let applicationContext = this.context.getApplicationContext();
  16. try {
  17. // 2.通过applicationContext注册当前应用进程状态监听
  18. applicationContext.on('applicationStateChange', applicationStateChangeCallback);
  19. } catch (paramError) {
  20. console.error(`error code: ${(paramError as BusinessError).code}, error msg: ${(paramError as BusinessError).message}`);
  21. }
  22. console.info('Register applicationStateChangeCallback');
  23. }
  24. }

ApplicationContext.off('applicationStateChange')10+

PhonePC/2in1TabletTVWearable

off(type: 'applicationStateChange', callback?: ApplicationStateChangeCallback): void

取消对当前应用进程状态变化的监听。使用callback异步回调。仅支持主线程调用。

元服务API:从API version 11开始,该接口支持在元服务中使用。

系统能力:SystemCapability.Ability.AbilityRuntime.Core

参数:

展开
参数名 类型 必填 说明
type string 此类型表示当前应用进程状态变化,固定为'applicationStateChange'。
callback ApplicationStateChangeCallback

回调函数。取值可以为使用ApplicationContext.on('applicationStateChange')方法定义的callback回调,也可以为空。

- 如果传入已定义的回调,则取消该监听。

- 如果未传入参数,则取消所有已注册的该类型事件的监听。

错误码

以下错误码详细介绍请参考通用错误码

展开
错误码ID 错误信息
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types.

示例:

假定已使用ApplicationContext.on('applicationStateChange')方法注册名为applicationStateChangeCallback回调,下面示例展示如何取消对应的事件监听。

收起
自动换行
深色代码主题
复制
  1. import { UIAbility, ApplicationStateChangeCallback } from '@kit.AbilityKit';
  2. import { BusinessError } from '@kit.BasicServicesKit';
  3. let applicationStateChangeCallback: ApplicationStateChangeCallback = {
  4. onApplicationForeground() {
  5. console.info('applicationStateChangeCallback onApplicationForeground');
  6. },
  7. onApplicationBackground() {
  8. console.info('applicationStateChangeCallback onApplicationBackground');
  9. }
  10. };
  11. export default class MyAbility extends UIAbility {
  12. onDestroy() {
  13. let applicationContext = this.context.getApplicationContext();
  14. try {
  15. // 本例中的callback字段取值为ApplicationStateChangeCallback,需要替换为实际值。
  16. // 如果callback字段不传入参数,则取消所有已注册的该类型事件的监听。
  17. applicationContext.off('applicationStateChange', applicationStateChangeCallback);
  18. } catch (paramError) {
  19. console.error(`error: ${(paramError as BusinessError).code}, ${(paramError as BusinessError).message}`);
  20. }
  21. }
  22. }

ApplicationContext.onSystemConfigurationUpdated24+

PhonePC/2in1TabletTVWearable

onSystemConfigurationUpdated(callback: systemConfiguration.UpdatedCallback): void

注册监听系统环境Configuration的变化。使用callback异步回调。仅支持主线程调用。

说明

应用自定义的设置不影响回调函数的触发。例如:应用自定义设置了深浅色模式,当系统深浅色模式变化后,注册的回调函数依然会触发。

元服务API:从API version 24开始,该接口支持在元服务中使用。

系统能力:SystemCapability.Ability.AbilityRuntime.Core

参数:

展开
参数名 类型 必填 说明
callback systemConfiguration.UpdatedCallback 系统环境变化时触发的回调方法。

示例:

收起
自动换行
深色代码主题
复制
  1. import { UIAbility, systemConfiguration, ConfigurationConstant } from '@kit.AbilityKit';
  2. import { BusinessError } from '@kit.BasicServicesKit';
  3. export default class EntryAbility extends UIAbility {
  4. onForeground() {
  5. let CallBack: systemConfiguration.UpdatedCallback = {
  6. onColorModeUpdated(colorMode: ConfigurationConstant.ColorMode) {
  7. console.info(`system configuration updated colormode:` + colorMode);
  8. },
  9. onFontSizeScaleUpdated(fontSizeScale: number) {
  10. console.info(`system configuration updated ability:` + fontSizeScale);
  11. },
  12. onFontWeightScaleUpdated(fontWeightScale: number) {
  13. console.info(`system configuration updated ability:` + fontWeightScale);
  14. },
  15. onLanguageUpdated(language: string) {
  16. console.info(`system configuration updated ability:` + language);
  17. },
  18. onFontIdUpdated(fontId: string) {
  19. console.info(`system configuration updated ability:` + fontId);
  20. },
  21. onMCCUpdated(mcc: string) {
  22. console.info(`system configuration updated ability:` + mcc);
  23. },
  24. onMNCUpdated(mnc: string) {
  25. console.info(`system configuration updated ability:` + mnc);
  26. },
  27. onHasPointerDeviceUpdated(hasPointerDevice: boolean) {
  28. console.info(`system configuration updated ability:` + hasPointerDevice);
  29. },
  30. onLocaleUpdated(locale: string) {
  31. console.info(`system configuration updated ability:` + locale);
  32. }
  33. }
  34. // 1.通过context属性获取applicationContext
  35. let applicationContext = this.context.getApplicationContext();
  36. try {
  37. // 2.通过applicationContext注册监听
  38. applicationContext.onSystemConfigurationUpdated(CallBack);
  39. } catch (paramError) {
  40. console.error(`error: ${(paramError as BusinessError).code}, ${(paramError as BusinessError).message}`);
  41. }
  42. console.info(`onSystemConfigurationUpdated finish`);
  43. }
  44. }

ApplicationContext.offSystemConfigurationUpdated24+

PhonePC/2in1TabletTVWearable

offSystemConfigurationUpdated(callback?: systemConfiguration.UpdatedCallback): void

取消监听系统环境Configuration的变化。仅支持主线程调用。

元服务API:从API version 24开始,该接口支持在元服务中使用。

系统能力:SystemCapability.Ability.AbilityRuntime.Core

参数:

展开
参数名 类型 必填 说明
callback systemConfiguration.UpdatedCallback

回调函数。取值可以为使用ApplicationContext.onSystemConfigurationUpdated方法注册的callback回调,也可以为空。

- 如果传入已定义的回调,则取消该监听。

- 如果未传入参数,则取消所有已注册的监听。

示例:

收起
自动换行
深色代码主题
复制
  1. import { UIAbility, systemConfiguration, ConfigurationConstant } from '@kit.AbilityKit';
  2. import { BusinessError } from '@kit.BasicServicesKit';
  3. export default class EntryAbility extends UIAbility {
  4. onForeground() {
  5. let CallBack: systemConfiguration.UpdatedCallback = {
  6. onColorModeUpdated(colorMode: ConfigurationConstant.ColorMode) {
  7. console.info(`system configuration updated colormode:` + colorMode);
  8. },
  9. onFontSizeScaleUpdated(fontSizeScale: number) {
  10. console.info(`system configuration updated ability:` + fontSizeScale);
  11. },
  12. onFontWeightScaleUpdated(fontWeightScale: number) {
  13. console.info(`system configuration updated ability:` + fontWeightScale);
  14. },
  15. onMCCUpdated(mcc: string) {
  16. console.info(`system configuration updated ability:` + mcc);
  17. },
  18. onMNCUpdated(mnc: string) {
  19. console.info(`system configuration updated ability:` + mnc);
  20. },
  21. onLanguageUpdated(language: string) {
  22. console.info(`system configuration updated ability:` + language);
  23. },
  24. onFontIdUpdated(fontId: string) {
  25. console.info(`system configuration updated ability:` + fontId);
  26. },
  27. onHasPointerDeviceUpdated(hasPointerDevice: boolean) {
  28. console.info(`system configuration updated ability:` + hasPointerDevice);
  29. },
  30. onLocaleUpdated(locale: string) {
  31. console.info(`system configuration updated ability:` + locale);
  32. }
  33. }
  34. // 1.通过context属性获取applicationContext
  35. let applicationContext = this.context.getApplicationContext();
  36. try {
  37. // 2.通过applicationContext取消监听
  38. applicationContext.offSystemConfigurationUpdated(CallBack);
  39. } catch (paramError) {
  40. console.error(`error: ${(paramError as BusinessError).code}, ${(paramError as BusinessError).message}`);
  41. }
  42. console.info(`offSystemConfigurationUpdated finish`);
  43. }
  44. }

ApplicationContext.getRunningProcessInformation

PhonePC/2in1TabletTVWearable

getRunningProcessInformation(): Promise<Array<ProcessInformation>>

获取运行中的进程信息。使用Promise异步回调。

元服务API:从API version 11开始,该接口支持在元服务中使用。

系统能力:SystemCapability.Ability.AbilityRuntime.Core

返回值:

展开
类型 说明
Promise<Array<ProcessInformation>> Promise对象,返回接口运行结果及有关运行进程的信息,可进行错误处理或其他自定义处理。

错误码

以下错误码详细介绍请参考通用错误码元能力子系统错误码

展开
错误码ID 错误信息
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types.
16000011 The context does not exist.
16000050 Internal error.

示例:

收起
自动换行
深色代码主题
复制
  1. import { UIAbility } from '@kit.AbilityKit';
  2. import { BusinessError } from '@kit.BasicServicesKit';
  3. export default class MyAbility extends UIAbility {
  4. onForeground() {
  5. let applicationContext = this.context.getApplicationContext();
  6. applicationContext.getRunningProcessInformation().then((data) => {
  7. console.info(`The process running information is: ${JSON.stringify(data)}`);
  8. }).catch((error: BusinessError) => {
  9. console.error(`error code: ${error.code}, error msg: ${error.message}`);
  10. });
  11. }
  12. }

ApplicationContext.getRunningProcessInformation

PhonePC/2in1TabletTVWearable

getRunningProcessInformation(callback: AsyncCallback<Array<ProcessInformation>>): void

获取运行中的进程信息。使用callback异步回调。

元服务API:从API version 11开始,该接口支持在元服务中使用。

系统能力:SystemCapability.Ability.AbilityRuntime.Core

参数:

展开
参数名 类型 必填 说明
callback AsyncCallback<Array<ProcessInformation>> 回调函数,返回有关运行进程的信息。

错误码

以下错误码详细介绍请参考通用错误码元能力子系统错误码

展开
错误码ID 错误信息
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types.
16000011 The context does not exist.
16000050 Internal error.

示例:

收起
自动换行
深色代码主题
复制
  1. import { UIAbility } from '@kit.AbilityKit';
  2. export default class MyAbility extends UIAbility {
  3. onForeground() {
  4. let applicationContext = this.context.getApplicationContext();
  5. applicationContext.getRunningProcessInformation((err, data) => {
  6. if (err) {
  7. console.error(`getRunningProcessInformation failed, err: ${JSON.stringify(err)}`);
  8. } else {
  9. console.info(`The process running information is: ${JSON.stringify(data)}`);
  10. }
  11. })
  12. }
  13. }

ApplicationContext.killAllProcesses

PhonePC/2in1TabletTVWearable

killAllProcesses(): Promise<void>

终止应用的所有进程,进程退出时不会正常执行完整的应用生命周期流程。使用Promise异步回调。仅支持主线程调用。

说明

该接口用于应用异常场景中强制退出应用。如需正常退出应用,可以使用terminateSelf()接口。

元服务API:从API version 11开始,该接口支持在元服务中使用。

系统能力:SystemCapability.Ability.AbilityRuntime.Core

返回值:

展开
类型 说明
Promise<void> Promise对象,无返回结果。

错误码

以下错误码详细介绍请参考通用错误码元能力子系统错误码

展开
错误码ID 错误信息
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types.
16000011 The context does not exist.

示例:

收起
自动换行
深色代码主题
复制
  1. import { UIAbility } from '@kit.AbilityKit';
  2. export default class MyAbility extends UIAbility {
  3. onBackground() {
  4. let applicationContext = this.context.getApplicationContext();
  5. applicationContext.killAllProcesses();
  6. }
  7. }

ApplicationContext.killAllProcesses14+

PhonePC/2in1TabletTVWearable

killAllProcesses(clearPageStack: boolean): Promise<void>

终止应用的所有进程,进程退出时不会正常执行完整的应用生命周期流程。使用Promise异步回调。仅支持主线程调用。

说明

该接口用于应用异常场景中强制退出应用。如需正常退出应用,可以使用terminateSelf()接口。

元服务API:从API version 14开始,该接口支持在元服务中使用。

系统能力:SystemCapability.Ability.AbilityRuntime.Core

参数:

展开
参数名 类型 必填 说明
clearPageStack boolean 表示是否清除页面堆栈。true表示清除,false表示不清除。

返回值:

展开
类型 说明
Promise<void> Promise对象,无返回结果。

错误码

以下错误码详细介绍请参考通用错误码元能力子系统错误码

展开
错误码ID 错误信息
401 If the input parameter is not valid parameter.
16000011 The context does not exist.

示例:

收起
自动换行
深色代码主题
复制
  1. import { UIAbility } from '@kit.AbilityKit';
  2. let isClearPageStack = false;
  3. export default class MyAbility extends UIAbility {
  4. onBackground() {
  5. let applicationContext = this.context.getApplicationContext();
  6. applicationContext.killAllProcesses(isClearPageStack);
  7. }
  8. }

ApplicationContext.killAllProcesses

PhonePC/2in1TabletTVWearable

killAllProcesses(callback: AsyncCallback<void>): void

终止应用的所有进程,进程退出时不会正常执行完整的应用生命周期流程。使用callback异步回调。仅支持主线程调用。

说明

该接口用于应用异常场景中强制退出应用。如需正常退出应用,可以使用terminateSelf()接口。

元服务API:从API version 11开始,该接口支持在元服务中使用。

系统能力:SystemCapability.Ability.AbilityRuntime.Core

参数:

展开
参数名 类型 必填 说明
callback AsyncCallback<void> 回调函数。当终止应用所在的进程成功,err为undefined,否则为错误对象。

错误码

以下错误码详细介绍请参考通用错误码元能力子系统错误码

展开
错误码ID 错误信息
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types.
16000011 The context does not exist.

示例:

收起
自动换行
深色代码主题
复制
  1. import { UIAbility } from '@kit.AbilityKit';
  2. export default class MyAbility extends UIAbility {
  3. onBackground() {
  4. let applicationContext = this.context.getApplicationContext();
  5. applicationContext.killAllProcesses(error => {
  6. if (error) {
  7. console.error(`killAllProcesses fail, error: ${JSON.stringify(error)}`);
  8. }
  9. });
  10. }
  11. }

ApplicationContext.setColorMode11+

PhonePC/2in1TabletTVWearable

setColorMode(colorMode: ConfigurationConstant.ColorMode): void

设置应用的深浅色模式。仅支持主线程调用。

说明

调用该接口前,需要确保窗口已完成创建、且UIAbility对应的页面已完成加载,即在onWindowStageCreate()生命周期中通过loadContent方法加载页面之后调用。

元服务API:从API version 11开始,该接口支持在元服务中使用。

系统能力:SystemCapability.Ability.AbilityRuntime.Core

参数:

展开
参数名 类型 必填 说明
colorMode ConfigurationConstant.ColorMode 深浅色模式,包括:深色模式、浅色模式、未设置颜色模式(默认)。

错误码

以下错误码详细介绍请参考通用错误码元能力子系统错误码

展开
错误码ID 错误信息
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types.
16000011 The context does not exist.

示例:

收起
自动换行
深色代码主题
复制
  1. import { UIAbility, ConfigurationConstant } from '@kit.AbilityKit';
  2. import { window } from '@kit.ArkUI';
  3. export default class MyAbility extends UIAbility {
  4. onWindowStageCreate(windowStage: window.WindowStage) {
  5. console.info("Ability onWindowStageCreate");
  6. windowStage.loadContent('pages/Index', (err, data) => {
  7. if (err.code) {
  8. console.error(`Failed to load the content. Code: ${err.code}, message: ${err.message}`);
  9. return;
  10. }
  11. console.info(`Succeeded in loading the content. Data: ${JSON.stringify(data)}`);
  12. let applicationContext = this.context.getApplicationContext();
  13. applicationContext.setColorMode(ConfigurationConstant.ColorMode.COLOR_MODE_DARK);
  14. });
  15. }
  16. }

ApplicationContext.setLanguage11+

PhonePC/2in1TabletTVWearable

setLanguage(language: string): void

设置应用的语言。仅支持主线程调用。

说明

调用该接口前,需要确保窗口已完成创建、且UIAbility对应的页面已完成加载,即在onWindowStageCreate()生命周期中通过loadContent方法加载页面之后调用。

元服务API:从API version 11开始,该接口支持在元服务中使用。

系统能力:SystemCapability.Ability.AbilityRuntime.Core

参数:

展开
参数名 类型 必填 说明
language string 设置语言,当前支持的语言列表可以通过getSystemLanguages()获取。

错误码

以下错误码详细介绍请参考元能力子系统错误码

展开
错误码ID 错误信息
16000011 The context does not exist.

示例:

收起
自动换行
深色代码主题
复制
  1. import { UIAbility } from '@kit.AbilityKit';
  2. import { window } from '@kit.ArkUI';
  3. export default class MyAbility extends UIAbility {
  4. onWindowStageCreate(windowStage: window.WindowStage) {
  5. console.info("Ability onWindowStageCreate");
  6. windowStage.loadContent('pages/Index', (err, data) => {
  7. if (err.code) {
  8. console.error(`Failed to load the content. Code: ${err.code}, message: ${err.message}`);
  9. return;
  10. }
  11. console.info(`Succeeded in loading the content. Data: ${JSON.stringify(data)}`);
  12. });
  13. let applicationContext = this.context.getApplicationContext();
  14. applicationContext.setLanguage('zh-cn');
  15. }
  16. }

ApplicationContext.clearUpApplicationData11+

PhonePC/2in1TabletTVWearable

clearUpApplicationData(): Promise<void>

清理当前应用的应用文件路径下的所有数据,同时撤销应用向用户申请的权限。使用Promise异步回调。仅支持主线程调用。

说明

应用文件路径详见应用文件目录信息。图中仅标识了el1~el2目录下的应用文件路径,其他文件加密类型目录下的应用文件路径可以参考el1。

该接口会停止应用进程,应用进程停止后,后续的所有回调都不会再触发。

系统能力:SystemCapability.Ability.AbilityRuntime.Core

返回值:

展开
类型 说明
Promise<void> Promise对象,无返回结果。

错误码

以下错误码详细介绍请参考元能力子系统错误码

展开
错误码ID 错误信息
16000011 The context does not exist.
16000050 Internal error.

示例:

收起
自动换行
深色代码主题
复制
  1. import { UIAbility } from '@kit.AbilityKit';
  2. export default class MyAbility extends UIAbility {
  3. onBackground() {
  4. let applicationContext = this.context.getApplicationContext();
  5. applicationContext.clearUpApplicationData();
  6. }
  7. }

ApplicationContext.clearUpApplicationData11+

PhonePC/2in1TabletTVWearable

clearUpApplicationData(callback: AsyncCallback<void>): void

清理当前应用的应用文件路径下的所有数据,同时撤销应用向用户申请的权限。使用callback异步回调。仅支持主线程调用。

说明

应用文件路径详见应用文件目录信息。图中仅标识了el1~el2目录下的应用文件路径,其他文件加密类型目录下的应用文件路径可以参考el1。

该接口会停止应用进程,应用进程停止后,后续的所有回调都不会再触发。

系统能力:SystemCapability.Ability.AbilityRuntime.Core

参数:

展开
参数名 类型 必填 说明
callback AsyncCallback<void> 回调方法。清理应用本身的数据成功时,error为undefined,否则返回错误对象。

错误码

以下错误码详细介绍请参考通用错误码元能力子系统错误码

展开
错误码ID 错误信息
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types.
16000011 The context does not exist.
16000050 Internal error.

示例:

收起
自动换行
深色代码主题
复制
  1. import { UIAbility } from '@kit.AbilityKit';
  2. export default class MyAbility extends UIAbility {
  3. onBackground() {
  4. let applicationContext = this.context.getApplicationContext();
  5. applicationContext.clearUpApplicationData(error => {
  6. if (error) {
  7. console.error(`clearUpApplicationData fail, error: ${JSON.stringify(error)}`);
  8. }
  9. });
  10. }
  11. }

ApplicationContext.restartApp12+

PhonePC/2in1TabletTVWearable

restartApp(want: Want): void

应用重启并拉起自身指定UIAbility。仅支持主线程调用,且待重启的应用需要处于获焦状态。

说明

通过该接口重启应用时,不会触发应用中Ability的onDestroy生命周期回调。

在元服务调用本接口成功后的3秒内,再次调用本接口、restartSelfAtomicService()UIAbilityContext.restartApp()接口中的任一接口,系统将返回错误码16000064。

在应用调用本接口成功后的3秒内,若再次调用本接口或UIAbilityContext.restartApp()接口中的任一接口,系统将返回错误码16000064。

元服务API:从API version 12开始,该接口支持在元服务中使用。

系统能力:SystemCapability.Ability.AbilityRuntime.Core

参数:

展开
参数名 类型 必填 说明
want Want Want类型参数,传入需要启动的UIAbility信息,校验abilityName,不校验bundleName。

错误码

以下错误码详细介绍请参考通用错误码元能力子系统错误码

展开
错误码ID 错误信息
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types.
16000050 Internal error.
16000053 The ability is not on the top of the UI.
16000063 The target to restart does not belong to the current application or is not a UIAbility.
16000064 Restart too frequently. Try again at least 3s later.

示例:

收起
自动换行
深色代码主题
复制
  1. import { hilog } from '@kit.PerformanceAnalysisKit';
  2. import { common, Want } from '@kit.AbilityKit';
  3. @Entry
  4. @Component
  5. struct Index {
  6. @State message: string = 'restartApp';
  7. private context = this.getUIContext().getHostContext()?.getApplicationContext() as common.ApplicationContext;
  8. build() {
  9. RelativeContainer() {
  10. Text(this.message)
  11. .id('HelloWorld')
  12. .fontSize($r('app.float.page_text_font_size'))
  13. .fontWeight(FontWeight.Bold)
  14. .alignRules({
  15. center: { anchor: '__container__', align: VerticalAlign.Center },
  16. middle: { anchor: '__container__', align: HorizontalAlign.Center }
  17. })
  18. .onClick(() => {
  19. let want: Want = {
  20. bundleName: 'com.example.myapplication',
  21. abilityName: 'EntryAbility'
  22. };
  23. if (this.context) {
  24. try {
  25. this.context.restartApp(want);
  26. } catch (err) {
  27. hilog.error(0x0000, 'testTag', `restart failed: ${err.code}, ${err.message}`);
  28. }
  29. } else {
  30. hilog.error(0x0000, 'testTag', "%{public}s", 'AppContext is null');
  31. }
  32. })
  33. }
  34. .height('100%')
  35. .width('100%')
  36. }
  37. }

ApplicationContext.getCurrentAppCloneIndex12+

PhonePC/2in1TabletTVWearable

getCurrentAppCloneIndex(): number

获取当前应用的分身索引。

元服务API:从API version 12开始,该接口支持在元服务中使用。

系统能力:SystemCapability.Ability.AbilityRuntime.Core

返回值:

展开
类型 说明
number 当前应用的分身索引。

错误码

展开
错误码ID 错误信息
16000011 The context does not exist.
16000071 The MultiAppMode is not App_CLONE.

以上错误码详细介绍请参考元能力子系统错误码

示例:

收起
自动换行
深色代码主题
复制
  1. import { UIAbility } from '@kit.AbilityKit';
  2. export default class MyAbility extends UIAbility {
  3. onBackground() {
  4. let applicationContext = this.context.getApplicationContext();
  5. try {
  6. let appCloneIndex = applicationContext.getCurrentAppCloneIndex();
  7. } catch (error) {
  8. console.error(`getCurrentAppCloneIndex fail, error: ${JSON.stringify(error)}`);
  9. }
  10. }
  11. }

ApplicationContext.setFont12+

PhonePC/2in1TabletTVWearable

setFont(font: string): void

设置应用的字体类型。仅支持主线程调用。

说明

调用该接口前,需要确保窗口已完成创建、且UIAbility对应的页面已完成加载,即在onWindowStageCreate()生命周期中通过loadContent方法加载页面之后调用。

系统能力:SystemCapability.Ability.AbilityRuntime.Core

参数:

展开
参数名 类型 必填 说明
font string 设置字体类型,字体可以通过UIContext.registerFont方法进行注册使用。

错误码

以下错误码详细介绍请参考元能力子系统错误码

展开
错误码ID 错误信息
16000011 The context does not exist.
16000050 Internal error.

示例:

收起
自动换行
深色代码主题
复制
  1. import { common } from '@kit.AbilityKit';
  2. @Entry
  3. @Component
  4. struct Index {
  5. @State message: string = 'Hello World';
  6. context = this.getUIContext().getHostContext() as common.UIAbilityContext;
  7. aboutToAppear() {
  8. this.getUIContext().getFont().registerFont({
  9. familyName: 'fontName',
  10. familySrc: $rawfile('font/medium.ttf') // 'font/medium.ttf'仅作为示例,实际使用时请替换为真实的字体资源文件。
  11. });
  12. this.context.getApplicationContext().setFont('fontName');
  13. }
  14. build() {
  15. Row() {
  16. Column() {
  17. Text(this.message)
  18. .fontSize(50)
  19. .fontWeight(50)
  20. }
  21. .width('100%')
  22. }
  23. .height('100%')
  24. }
  25. }

ApplicationContext.setSupportedProcessCache12+

PhonePC/2in1TabletTVWearable

setSupportedProcessCache(isSupported : boolean): void

设置当前应用进程是否支持进程资源的缓存,便于应用再次启动时复用缓存的进程资源。仅支持主线程调用。

该接口仅对单个进程实例生效,不同进程实例互不影响。应用进程实例销毁后,已设置的状态不保留,需要重新设置。

说明
  • 该接口仅表示应用自身是否为缓存后快速启动做好了准备,还需综合其他条件来判断最终是否为应用启用快速启动。
  • 为了确保该接口在进程退出前生效,调用时机应尽量提前。建议在AbilityStage的onCreate()中调用该接口。
  • 在同一进程多次调用该接口时,会以最后一次调用的结果为准。当存在多个AbilityStage时,为了确保结果符合预期,需要在各个AbilityStage中分别调用该接口并配置相同的取值。

模型约束:此接口仅可在Stage模型下使用。

系统能力:SystemCapability.Ability.AbilityRuntime.Core

设备行为差异:该接口仅在Phone和2in1设备中可正常调用,在其他设备中返回801错误码。

参数:

展开
参数名 类型 必填 说明
isSupported boolean 表示应用是否支持进程资源的缓存。true表示支持,false表示不支持。

错误码

以下错误码详细介绍请参考通用错误码元能力子系统错误码

展开
错误码ID 错误信息
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types.
801 Capability not supported.
16000011 The context does not exist.
16000050 Internal error.

示例:

收起
自动换行
深色代码主题
复制
  1. import { AbilityStage, Want } from '@kit.AbilityKit';
  2. import { BusinessError } from '@kit.BasicServicesKit';
  3. export default class MyAbilityStage extends AbilityStage {
  4. onCreate() {
  5. let applicationContext = this.context.getApplicationContext();
  6. try {
  7. applicationContext.setSupportedProcessCache(true);
  8. } catch (error) {
  9. let code = (error as BusinessError).code;
  10. let message = (error as BusinessError).message;
  11. console.error(`setSupportedProcessCache fail, code: ${code}, msg: ${message}`);
  12. }
  13. }
  14. }

ApplicationContext.setFontSizeScale13+

PhonePC/2in1TabletTVWearable

setFontSizeScale(fontSizeScale: number): void

设置应用字体大小缩放比例。仅支持主线程调用。

元服务API:从API version 13开始,该接口支持在元服务中使用。

系统能力:SystemCapability.Ability.AbilityRuntime.Core

参数:

展开
参数名 类型 必填 说明
fontSizeScale number 表示字体缩放比例,取值为非负数。当应用字体跟随系统且该字段取值超过fontSizeMaxScale取值时,实际生效值为fontSizeMaxScale取值。

示例:

收起
自动换行
深色代码主题
复制
  1. import { UIAbility } from '@kit.AbilityKit';
  2. import { window } from '@kit.ArkUI';
  3. export default class MyAbility extends UIAbility {
  4. onWindowStageCreate(windowStage: window.WindowStage) {
  5. windowStage.loadContent('pages/Index', (err, data) => {
  6. if (err.code) {
  7. return;
  8. }
  9. let applicationContext = this.context.getApplicationContext();
  10. applicationContext.setFontSizeScale(2);
  11. });
  12. }
  13. }

ApplicationContext.getCurrentInstanceKey14+

PhonePC/2in1TabletTVWearable

getCurrentInstanceKey(): string

获取当前应用多实例的唯一实例标识。仅支持主线程调用。

系统能力:SystemCapability.Ability.AbilityRuntime.Core

设备行为差异:该接口仅在2in1设备中可正常调用,在其他设备中返回16000078错误码。

返回值:

展开
类型 说明
string 返回当前应用多实例的唯一实例标识。

错误码

以下错误码详细介绍请参考通用错误码

展开
错误码ID 错误信息
16000011 The context does not exist.
16000078 The multi-instance is not supported.

示例:

收起
自动换行
深色代码主题
复制
  1. import { AbilityStage } from '@kit.AbilityKit';
  2. import { BusinessError } from '@kit.BasicServicesKit';
  3. export default class MyAbilityStage extends AbilityStage {
  4. onCreate() {
  5. let applicationContext = this.context.getApplicationContext();
  6. let currentInstanceKey = '';
  7. try {
  8. currentInstanceKey = applicationContext.getCurrentInstanceKey();
  9. } catch (error) {
  10. let code = (error as BusinessError).code;
  11. let message = (error as BusinessError).message;
  12. console.error(`getCurrentInstanceKey fail, code: ${code}, msg: ${message}`);
  13. }
  14. console.info(`currentInstanceKey: ${currentInstanceKey}`);
  15. }
  16. }

ApplicationContext.getAllRunningInstanceKeys14+

PhonePC/2in1TabletTVWearable

getAllRunningInstanceKeys(): Promise<Array<string>>;

获取应用的所有多实例的唯一实例标识。使用Promise异步回调。仅支持主线程调用。

系统能力:SystemCapability.Ability.AbilityRuntime.Core

设备行为差异:该接口仅在PC/2in1设备中可正常调用。

返回值:

展开
类型 说明
Promise<Array<string>> Promise对象,返回应用的所有多实例的唯一实例标识。

错误码

以下错误码详细介绍请参考通用错误码

展开
错误码ID 错误信息
16000011 The context does not exist.
16000050 Internal error.
16000078 The multi-instance is not supported.

示例:

收起
自动换行
深色代码主题
复制
  1. import { AbilityStage } from '@kit.AbilityKit';
  2. import { BusinessError } from '@kit.BasicServicesKit';
  3. export default class MyAbilityStage extends AbilityStage {
  4. onCreate() {
  5. let applicationContext = this.context.getApplicationContext();
  6. try {
  7. applicationContext.getAllRunningInstanceKeys();
  8. } catch (error) {
  9. let code = (error as BusinessError).code;
  10. let message = (error as BusinessError).message;
  11. console.error(`getAllRunningInstanceKeys fail, code: ${code}, msg: ${message}`);
  12. }
  13. }
  14. }

ApplicationContext.getAllWindowStages23+

PhonePC/2in1TabletTVWearable

getAllWindowStages(): Promise<Array<window.WindowStage>>

获取应用当前进程内的所有WindowStage对象。使用Promise异步回调。仅支持主线程调用。

该接口主要用于包含多个UIAbility的应用进行多窗口管理,例如管理多个WindowStage的状态、同一应用的多个窗口间的状态或数据同步等。

元服务API:从API version 23开始,该接口支持在元服务中使用。

系统能力:SystemCapability.Ability.AbilityRuntime.Core

返回值:

展开
类型 说明
Promise<Array<window.WindowStage>> Promise对象,返回应用当前进程内的所有WindowStage对象。

示例:

收起
自动换行
深色代码主题
复制
  1. import { AbilityStage } from '@kit.AbilityKit';
  2. import { BusinessError } from '@kit.BasicServicesKit';
  3. import { window } from '@kit.ArkUI';
  4. export default class MyAbilityStage extends AbilityStage {
  5. onCreate() {
  6. let applicationContext = this.context.getApplicationContext();
  7. try {
  8. applicationContext.getAllWindowStages().then((data: window.WindowStage[]) => {
  9. let windowStage: window.WindowStage[] = data;
  10. console.info(`WindowStages size ${windowStage.length}`);
  11. }).catch((error: BusinessError) => {
  12. console.error(`getAllWindowStages error, code: ${error.code}, error msg: ${error.message}`);
  13. });
  14. } catch (error) {
  15. let code = (error as BusinessError).code;
  16. let message = (error as BusinessError).message;
  17. console.error(`getAllWindowStages fail, code: ${code}, msg: ${message}`);
  18. }
  19. }
  20. }
在 API参考 中进行搜索
请输入您想要搜索的关键词