harmony 鸿蒙ApplicationContext(应用级别的上下文)

  • 2025-06-12
  • 浏览 (2)

ApplicationContext(应用级别的上下文)

ApplicationContext模块继承自Context,为开发者提供应用级别的上下文的能力,包括提供注册及取消注册应用内组件生命周期的监听接口

ApplicationContext可以通过getApplicationContext接口获取。

说明:

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

导入模块

import { common } from '@kit.AbilityKit';

ApplicationContext.on(‘abilityLifecycle’)

on(type: ‘abilityLifecycle’, callback: AbilityLifecycleCallback): number

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

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

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

参数:

参数名 类型 必填 说明
type ‘abilityLifecycle’ 此类型表示应用内UIAbility的生命周期。
callback AbilityLifecycleCallback UIAbility生命周期变化时触发的回调方法。

返回值:

类型 说明
number 返回此次注册的callbackID(每次注册该ID会自增+1,当超过监听上限数量2^63-1时,返回-1),该ID用于在ApplicationContext.off(‘abilityLifecycle’)方法中取消注册对应的callback。

错误码

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

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

示例:

import { UIAbility, AbilityLifecycleCallback } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';

let lifecycleId: number;

export default class EntryAbility extends UIAbility {
  onCreate() {
    console.log('MyAbility onCreate');
    let AbilityLifecycleCallback: AbilityLifecycleCallback = {
      onAbilityCreate(ability) {
        console.log(`AbilityLifecycleCallback onAbilityCreate ability: ${ability}`);
      },
      onWindowStageCreate(ability, windowStage) {
        console.log(`AbilityLifecycleCallback onWindowStageCreate ability: ${ability}`);
        console.log(`AbilityLifecycleCallback onWindowStageCreate windowStage: ${windowStage}`);
      },
      onWindowStageActive(ability, windowStage) {
        console.log(`AbilityLifecycleCallback onWindowStageActive ability: ${ability}`);
        console.log(`AbilityLifecycleCallback onWindowStageActive windowStage: ${windowStage}`);
      },
      onWindowStageInactive(ability, windowStage) {
        console.log(`AbilityLifecycleCallback onWindowStageInactive ability: ${ability}`);
        console.log(`AbilityLifecycleCallback onWindowStageInactive windowStage: ${windowStage}`);
      },
      onWindowStageDestroy(ability, windowStage) {
        console.log(`AbilityLifecycleCallback onWindowStageDestroy ability: ${ability}`);
        console.log(`AbilityLifecycleCallback onWindowStageDestroy windowStage: ${windowStage}`);
      },
      onAbilityDestroy(ability) {
        console.log(`AbilityLifecycleCallback onAbilityDestroy ability: ${ability}`);
      },
      onAbilityForeground(ability) {
        console.log(`AbilityLifecycleCallback onAbilityForeground ability: ${ability}`);
      },
      onAbilityBackground(ability) {
        console.log(`AbilityLifecycleCallback onAbilityBackground ability: ${ability}`);
      },
      onAbilityContinue(ability) {
        console.log(`AbilityLifecycleCallback onAbilityContinue ability: ${ability}`);
      }
    }
    // 1.通过context属性获取applicationContext
    let applicationContext = this.context.getApplicationContext();
    try {
      // 2.通过applicationContext注册监听应用内生命周期
      lifecycleId = applicationContext.on('abilityLifecycle', AbilityLifecycleCallback);
    } catch (paramError) {
      console.error(`error: ${(paramError as BusinessError).code}, ${(paramError as BusinessError).message}`);
    }
    console.log(`registerAbilityLifecycleCallback lifecycleId: ${lifecycleId}`);
  }
}

ApplicationContext.off(‘abilityLifecycle’)

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

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

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

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

参数:

参数名 类型 必填 说明
type ‘abilityLifecycle’ 此类型表示应用内UIAbility的生命周期。
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.

示例:

import { UIAbility } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';

let lifecycleId: number;

export default class EntryAbility extends UIAbility {
  onDestroy() {
    let applicationContext = this.context.getApplicationContext();
    console.log(`stage applicationContext: ${applicationContext}`);
    try {
      applicationContext.off('abilityLifecycle', lifecycleId, (error, data) => {
        if (error) {
          console.error(`unregisterAbilityLifecycleCallback fail, err: ${JSON.stringify(error)}`);
        } else {
          console.log(`unregisterAbilityLifecycleCallback success, data: ${JSON.stringify(data)}`);
        }
      });
    } catch (paramError) {
      console.error(`error: ${(paramError as BusinessError).code}, ${(paramError as BusinessError).message}`);
    }
  }
}

ApplicationContext.off(‘abilityLifecycle’)

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

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

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

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

参数:

参数名 类型 必填 说明
type ‘abilityLifecycle’ 此类型表示应用内UIAbility的生命周期。
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.

示例:

import { UIAbility } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';

let lifecycleId: number;

export default class MyAbility extends UIAbility {
  onDestroy() {
    let applicationContext = this.context.getApplicationContext();
    console.log(`stage applicationContext: ${applicationContext}`);
    try {
      applicationContext.off('abilityLifecycle', lifecycleId);
    } catch (paramError) {
      console.error(`error: ${(paramError as BusinessError).code}, ${(paramError as BusinessError).message}`);
    }
  }
}

ApplicationContext.on(‘environment’)

on(type: ‘environment’, callback: EnvironmentCallback): number

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

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

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

参数:

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

返回值:

类型 说明
number 返回此次注册的callbackID(每次注册该ID会自增+1,当超过监听上限数量2^63-1时,返回-1),该ID用于在ApplicationContext.off(‘environment’)方法中取消注册对应的callback。

错误码

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

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

示例:

import { UIAbility, EnvironmentCallback } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';

let callbackId: number;

export default class EntryAbility extends UIAbility {
  onCreate() {
    console.log('MyAbility onCreate')
    let environmentCallback: EnvironmentCallback = {
      onConfigurationUpdated(config) {
        console.log(`onConfigurationUpdated config: ${JSON.stringify(config)}`);
      },
      onMemoryLevel(level) {
        console.log(`onMemoryLevel level: ${level}`);
      }
    };
    // 1.获取applicationContext
    let applicationContext = this.context.getApplicationContext();
    try {
      // 2.通过applicationContext注册监听系统环境变化
      callbackId = applicationContext.on('environment', environmentCallback);
    } catch (paramError) {
      console.error(`error: ${(paramError as BusinessError).code}, ${(paramError as BusinessError).message}`);
    }
    console.log(`registerEnvironmentCallback callbackId: ${callbackId}`);
  }
}

ApplicationContext.off(‘environment’)

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

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

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

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

参数:

参数名 类型 必填 说明
type ‘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.

示例:

import { UIAbility } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';

let callbackId: number;

export default class EntryAbility extends UIAbility {
  onDestroy() {
    let applicationContext = this.context.getApplicationContext();
    try {
      applicationContext.off('environment', callbackId, (error, data) => {
        if (error) {
          console.error(`unregisterEnvironmentCallback fail, err: ${JSON.stringify(error)}`);
        } else {
          console.log(`unregisterEnvironmentCallback success, data: ${JSON.stringify(data)}`);
        }
      });
    } catch (paramError) {
      console.error(`error: ${(paramError as BusinessError).code}, ${(paramError as BusinessError).message}`);
    }
  }
}

ApplicationContext.off(‘environment’)

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

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

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

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

参数:

参数名 类型 必填 说明
type ‘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.

示例:

import { UIAbility } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';

let callbackId: number;

export default class MyAbility extends UIAbility {
  onDestroy() {
    let applicationContext = this.context.getApplicationContext();
    try {
      applicationContext.off('environment', callbackId);
    } catch (paramError) {
      console.error(`error: ${(paramError as BusinessError).code}, ${(paramError as BusinessError).message}`);
    }
  }
}

ApplicationContext.on(‘applicationStateChange’)10+

on(type: ‘applicationStateChange’, callback: ApplicationStateChangeCallback): void

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

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

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

参数:

参数名 类型 必填 说明
type ‘applicationStateChange’ 此类型表示应用前后台状态变化。
callback ApplicationStateChangeCallback 应用前后台切换时触发的回调方法。

错误码

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

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

示例:

import { UIAbility, ApplicationStateChangeCallback } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';

export default class MyAbility extends UIAbility {
  onCreate() {
    console.log('MyAbility onCreate');
    let applicationStateChangeCallback: ApplicationStateChangeCallback = {
      onApplicationForeground() {
        console.info('applicationStateChangeCallback onApplicationForeground');
      },
      onApplicationBackground() {
        console.info('applicationStateChangeCallback onApplicationBackground');
      }
    }

    // 1.获取applicationContext
    let applicationContext = this.context.getApplicationContext();
    try {
      // 2.通过applicationContext注册应用前后台状态监听
      applicationContext.on('applicationStateChange', applicationStateChangeCallback);
    } catch (paramError) {
      console.error(`error: ${(paramError as BusinessError).code}, ${(paramError as BusinessError).message}`);
    }
    console.log('Register applicationStateChangeCallback');
  }
}

ApplicationContext.off(‘applicationStateChange’)10+

off(type: ‘applicationStateChange’, callback?: ApplicationStateChangeCallback): void

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

说明:

使用该接口前,需要先使用ApplicationContext.on(‘applicationStateChange’)注册事件监听。

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

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

参数:

参数名 类型 必填 说明
type ‘applicationStateChange’ 此类型表示应用前后台状态变化。
callback ApplicationStateChangeCallback 回调函数。取值可以为使用ApplicationContext.on(‘applicationStateChange’)方法定义的callback回调,也可以为空。
-&nbsp;如果传入已定义的回调,则取消该监听。
-&nbsp;如果未传入参数,则取消当前应用对所有前后台切换事件的监听。

错误码

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

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

示例:

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

import { UIAbility, ApplicationStateChangeCallback } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';

let applicationStateChangeCallback: ApplicationStateChangeCallback = {
  onApplicationForeground() {
    console.info('applicationStateChangeCallback onApplicationForeground');
  },
  onApplicationBackground() {
    console.info('applicationStateChangeCallback onApplicationBackground');
  }
};

export default class MyAbility extends UIAbility {
  onDestroy() {
    let applicationContext = this.context.getApplicationContext();
    try {
      // 本例中的callback字段取值为ApplicationStateChangeCallback,需要替换为实际值。
      // 如果callback字段不传入参数,则取消当前应用对所有前后台切换事件的监听。
      applicationContext.off('applicationStateChange', applicationStateChangeCallback);
    } catch (paramError) {
      console.error(`error: ${(paramError as BusinessError).code}, ${(paramError as BusinessError).message}`);
    }
  }
}

ApplicationContext.getRunningProcessInformation

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.

示例:

import { UIAbility } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';

export default class MyAbility extends UIAbility {
  onForeground() {
    let applicationContext = this.context.getApplicationContext();
    applicationContext.getRunningProcessInformation().then((data) => {
      console.log(`The process running information is: ${JSON.stringify(data)}`);
    }).catch((error: BusinessError) => {
      console.error(`error: ${JSON.stringify(error)}`);
    });
  }
}

ApplicationContext.getRunningProcessInformation

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.

示例:

import { UIAbility } from '@kit.AbilityKit';

export default class MyAbility extends UIAbility {
  onForeground() {
    let applicationContext = this.context.getApplicationContext();
    applicationContext.getRunningProcessInformation((err, data) => {
      if (err) {
        console.error(`getRunningProcessInformation failed, err: ${JSON.stringify(err)}`);
      } else {
        console.log(`The process running information is: ${JSON.stringify(data)}`);
      }
    })
  }
}

ApplicationContext.killAllProcesses

killAllProcesses(): Promise<void>

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

说明:

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

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

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

返回值:

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

错误码

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

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

示例:

import { UIAbility } from '@kit.AbilityKit';

export default class MyAbility extends UIAbility {
  onBackground() {
    let applicationContext = this.context.getApplicationContext();
    applicationContext.killAllProcesses();
  }
}

ApplicationContext.killAllProcesses14+

killAllProcesses(clearPageStack: boolean): Promise<void>

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

说明:

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

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

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

参数:

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

返回值:

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

错误码

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

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

示例:

import { UIAbility } from '@kit.AbilityKit';

let isClearPageStack = false;

export default class MyAbility extends UIAbility {
  onBackground() {
    let applicationContext = this.context.getApplicationContext();
    applicationContext.killAllProcesses(isClearPageStack);
  }
}

ApplicationContext.killAllProcesses

killAllProcesses(callback: AsyncCallback<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.

示例:

import { UIAbility } from '@kit.AbilityKit';

export default class MyAbility extends UIAbility {
  onBackground() {
    let applicationContext = this.context.getApplicationContext();
    applicationContext.killAllProcesses(error => {
      if (error) {
        console.error(`killAllProcesses fail, error: ${JSON.stringify(error)}`);
      }
    });
  }
}

ApplicationContext.setColorMode11+

setColorMode(colorMode: ConfigurationConstant.ColorMode): void

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

原子化服务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.

示例:

import { UIAbility, ConfigurationConstant } from '@kit.AbilityKit';

export default class MyAbility extends UIAbility {
  onCreate() {
    let applicationContext = this.context.getApplicationContext();
    applicationContext.setColorMode(ConfigurationConstant.ColorMode.COLOR_MODE_DARK);
  }
}

ApplicationContext.setLanguage11+

setLanguage(language: string): void

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

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

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

参数:

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

错误码

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

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

示例:

import { UIAbility } from '@kit.AbilityKit';

export default class MyAbility extends UIAbility {
  onCreate() {
    let applicationContext = this.context.getApplicationContext();
    applicationContext.setLanguage('zh-cn');
  }
}

ApplicationContext.clearUpApplicationData11+

clearUpApplicationData(): Promise<void>

清理应用本身的数据,同时撤销应用向用户申请的权限。使用Promise异步回调。仅支持主线程调用。

说明:

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

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

返回值:

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

错误码

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

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

示例:

import { UIAbility } from '@kit.AbilityKit';

export default class MyAbility extends UIAbility {
  onBackground() {
    let applicationContext = this.context.getApplicationContext();
    applicationContext.clearUpApplicationData();
  }
}

ApplicationContext.clearUpApplicationData11+

clearUpApplicationData(callback: AsyncCallback<void>): void

清理应用本身的数据,同时撤销应用向用户申请的权限。使用callback异步回调。仅支持主线程调用。

说明:

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

系统能力: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.

示例:

import { UIAbility } from '@kit.AbilityKit';

export default class MyAbility extends UIAbility {
  onBackground() {
    let applicationContext = this.context.getApplicationContext();
    applicationContext.clearUpApplicationData(error => {
      if (error) {
        console.error(`clearUpApplicationData fail, error: ${JSON.stringify(error)}`);
      }
    });
  }
}

ApplicationContext.restartApp12+

restartApp(want: Want): void

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

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

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

参数: |参数名 |类型 |必填|说明 | |————-|——–|—-|————————–| |want|Want|是|Want类型参数,传入需要启动的UIAbility的信息,Bundle名称不做校验。|

错误码

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

错误码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.

示例:

import { UIAbility, Want } from '@kit.AbilityKit';

export default class MyAbility extends UIAbility {
  onForeground() {
    let applicationContext = this.context.getApplicationContext();
    let want: Want = {
      bundleName: 'com.example.myapp',
      abilityName: 'EntryAbility'
    };
    try {
      applicationContext.restartApp(want);
    } catch (error) {
      console.error(`restartApp fail, error: ${JSON.stringify(error)}`);
    }
  }
}

ApplicationContext.getCurrentAppCloneIndex12+

getCurrentAppCloneIndex(): number

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

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

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

返回值:

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

错误码

错误码ID 错误信息
16000011 The context does not exist.
16000071 App clone is not supported.

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

示例:

import { UIAbility } from '@kit.AbilityKit';

export default class MyAbility extends UIAbility {
  onBackground() {
    let applicationContext = this.context.getApplicationContext();
    try {
      let appCloneIndex = applicationContext.getCurrentAppCloneIndex();
    } catch (error) {
      console.error(`getCurrentAppCloneIndex fail, error: ${JSON.stringify(error)}`);
    }
  }
}

ApplicationContext.setFont12+

setFont(font: string): void

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

说明:

当页面窗口创建完成后,才能调用该接口,即需要在onWindowStageCreate()生命周期之后调用。

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

参数:

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

错误码

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

错误码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.

示例:

import { font } from '@kit.ArkUI';
import { common } from '@kit.AbilityKit';

@Entry
@Component
struct Index {
  @State message: string = 'Hello World';
  context = this.getUIContext().getHostContext() as common.UIAbilityContext;

  aboutToAppear() {
    this.getUIContext().getFont().registerFont({
      familyName: 'fontName',
      familySrc: $rawfile('font/medium.ttf')
    })

    this.context.getApplicationContext().setFont("fontName");
  }

  build() {
    Row() {
      Column() {
        Text(this.message)
          .fontSize(50)
          .fontWeight(50)
      }
      .width('100%')
    }
    .height('100%')
  }
}

ApplicationContext.setSupportedProcessCache12+

setSupportedProcessCache(isSupported : boolean): void

设置当前应用的进程是否支持缓存后快速启动。仅支持主线程调用。

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

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

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

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

参数: |参数名 |类型 |必填|说明 | |————-|——–|—-|————————–| |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.

示例:

import { AbilityStage, Want } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';

class MyAbilityStage extends AbilityStage {
  onCreate() {
    let applicationContext = this.context.getApplicationContext();
    try {
      applicationContext.setSupportedProcessCache(true);
    } catch (error) {
      let code = (error as BusinessError).code;
      let message = (error as BusinessError).message;
      console.error(`setSupportedProcessCache fail, code: ${code}, msg: ${message}`);
    }
  }
}

ApplicationContext.setFontSizeScale13+

setFontSizeScale(fontSizeScale: number): void

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

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

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

参数:

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

错误码

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

错误码ID 错误信息
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified.

示例:

import { UIAbility } from '@kit.AbilityKit';
import { window } from '@kit.ArkUI';

export default class MyAbility extends UIAbility {
  onWindowStageCreate(windowStage: window.WindowStage) {
    windowStage.loadContent('pages/Index', (err, data) => {
      if (err.code) {
        return;
      }
      let applicationContext = this.context.getApplicationContext();
      applicationContext.setFontSizeScale(2);
    });
  }
}

ApplicationContext.getCurrentInstanceKey14+

getCurrentInstanceKey(): string

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

说明:

当前仅支持2in1设备。

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

返回值:

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

错误码

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

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

示例:

import { AbilityStage } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';

class MyAbilityStage extends AbilityStage {
  onCreate() {
    let applicationContext = this.context.getApplicationContext();
    let currentInstanceKey = '';
    try {
      currentInstanceKey = applicationContext.getCurrentInstanceKey();
    } catch (error) {
      let code = (error as BusinessError).code;
      let message = (error as BusinessError).message;
      console.error(`getCurrentInstanceKey fail, code: ${code}, msg: ${message}`);
    }
    console.log(`currentInstanceKey: ${currentInstanceKey}`);
  }
}

ApplicationContext.getAllRunningInstanceKeys14+

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

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

说明:

当前仅支持2in1设备。

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

返回值:

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

错误码

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

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

示例:

import { AbilityStage } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';

class MyAbilityStage extends AbilityStage {
  onCreate() {
    let applicationContext = this.context.getApplicationContext();
    try {
      applicationContext.getAllRunningInstanceKeys();
    } catch (error) {
      let code = (error as BusinessError).code;
      let message = (error as BusinessError).message;
      console.error(`getAllRunningInstanceKeys fail, code: ${code}, msg: ${message}`);
    }
  }
}

你可能感兴趣的鸿蒙文章

harmony 鸿蒙Ability Kit(程序框架服务)

harmony 鸿蒙AbilityBase

harmony 鸿蒙AbilityBase_Element

harmony 鸿蒙AbilityRuntime

harmony 鸿蒙bundle

harmony 鸿蒙OH_NativeBundle_ApplicationInfo

harmony 鸿蒙OH_NativeBundle_ElementName

harmony 鸿蒙ability_base_common.h

harmony 鸿蒙ability_runtime_common.h

harmony 鸿蒙application_context.h

0  赞