# @ohos.app.ability.appManager (appManager)(系统接口) appManager模块提供App管理的能力,包括查询当前是否处于稳定性测试场景、查询是否为ram受限设备、获取应用程序的内存大小、获取有关运行进程的信息等。 > **说明:** > > 本模块首批接口从API version 9 开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 > > 当前页面仅包含本模块的系统接口,其他公开接口参见[@ohos.app.ability.appManager (appManager)](js-apis-app-ability-appManager.md)。 ## 导入模块 ```ts import { appManager } from '@kit.AbilityKit'; ``` ## appManager.PreloadMode12+ 表示预加载应用进程模式的枚举。 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core **系统接口**:此接口为系统接口。 **模型约束**:此接口仅可在Stage模型下使用。 | 名称 | 值 | 说明 | | ----------- | --- | --------------------------- | | PRESS_DOWN | 0 | 按下应用图标时进行应用进程预加载。 | ## KeepAliveAppType14+ 表示被保活应用的应用类型。 **系统接口**:此接口为系统接口。 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core | 名称 | 值 | 说明 | | -------- | ---------- | -------- | | ALL | 0 | 三方应用和系统应用。此选项只能作为[getKeepAliveBundles](#appmanagergetkeepalivebundles14)接口的入参被调用。 | | THIRD_PARTY | 1 | 三方应用。 | | SYSTEM | 2 | 系统应用。 | ## KeepAliveSetter14+ 表示应用保活的设置方类型。 **系统接口**:此接口为系统接口。 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core | 名称 | 值 | 说明 | | -------- | ---------- | -------- | | SYSTEM | 0 | 应用保活设置方为系统。 | | USER | 1 | 应用保活设置方为用户。 | ## KeepAliveBundleInfo14+ 定义应用保活信息,可以通过[getKeepAliveBundles](#appmanagergetkeepalivebundles14)获取当前应用的相关信息。 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core **系统接口**:此接口为系统接口。 | 名称 | 类型 | 只读 | 可选 | 说明 | | ------------------------- | ------ | ---- | ---- | --------- | | bundleName | string | 是 | 否 | Bundle名称。 | | userId | number | 是 | 否 | 用户ID。 | | appType | [KeepAliveAppType](#keepaliveapptype14) | 是 | 否 | 表示被保活应用的应用类型。 | | setter | [KeepAliveSetter](#keepalivesetter14) | 是 | 否 | 表示应用保活设置者类型。 | ## appManager.isSharedBundleRunning10+ isSharedBundleRunning(bundleName: string, versionCode: number): Promise\ 检查共享库是否正在使用。使用Promise异步回调。 **需要权限**:ohos.permission.GET_RUNNING_INFO **系统能力**:SystemCapability.Ability.AbilityRuntime.Core **系统接口**:此接口为系统接口。 **参数**: | 参数名 | 类型 | 必填 | 说明 | | --------- | ---------------------------------------- | ---- | -------------- | | bundleName | string | 是 | 表示要查询的共享库包名。 | | versionCode | number | 是 | 表示要查询的共享库版本号。 | **返回值:** | 类型 | 说明 | | -------- | -------- | | Promise\ | Promise对象。返回true表示共享库正在使用,返回false表示共享库不在使用。 | **错误码**: 以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 | 错误码ID | 错误信息 | | ------- | -------- | | 201 | Permission denied. | | 202 | Not System App. Interface caller is not a system app. | | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | | 16000050 | Internal error. | **示例:** ```ts import { appManager } from '@kit.AbilityKit'; import { BusinessError } from '@kit.BasicServicesKit'; const bundleName = "this is a bundleName"; const versionCode = 1; appManager.isSharedBundleRunning(bundleName, versionCode).then((data) => { console.log(`The shared bundle running is: ${JSON.stringify(data)}`); }).catch((error: BusinessError) => { console.error(`error: ${JSON.stringify(error)}`); }); ``` ## appManager.isSharedBundleRunning10+ isSharedBundleRunning(bundleName: string, versionCode: number, callback: AsyncCallback\): void 检查共享库是否正在使用。使用callback异步回调。 **需要权限**:ohos.permission.GET_RUNNING_INFO **系统能力**:SystemCapability.Ability.AbilityRuntime.Core **系统接口**:此接口为系统接口。 **参数**: | 参数名 | 类型 | 必填 | 说明 | | --------- | ---------------------------------------- | ---- | -------------- | | bundleName | string | 是 | 表示要查询的共享库包名。 | | versionCode | number | 是 | 表示要查询的共享库版本号。 | | callback | AsyncCallback\> | 是 | 回调函数。返回true表示共享库正在使用,返回false表示共享库不在使用。 | **错误码**: 以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 | 错误码ID | 错误信息 | | ------- | -------- | | 201 | Permission denied. | | 202 | Not System App. Interface caller is not a system app. | | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | | 16000050 | Internal error. | **示例:** ```ts import { appManager } from '@kit.AbilityKit'; const bundleName = "this is a bundleName"; const versionCode = 1; appManager.isSharedBundleRunning(bundleName, versionCode, (err, data) => { if (err) { console.error(`err: ${JSON.stringify(err)}`); } else { console.log(`The shared bundle running is: ${JSON.stringify(data)}`); } }); ``` ## appManager.on('appForegroundState')11+ on(type: 'appForegroundState', observer: AppForegroundStateObserver): void 注册应用启动和退出的观测器,可用于系统应用观测所有应用的启动和退出。 **系统接口**:此接口为系统接口。 **需要权限**:ohos.permission.RUNNING_STATE_OBSERVER **系统能力**:SystemCapability.Ability.AbilityRuntime.Core **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | | type | string | 是 | 调用接口类型,固定填'appForegroundState'字符串。 | | observer | [AppForegroundStateObserver](js-apis-inner-application-appForegroundStateObserver-sys.md) | 是 | 应用状态观测器,用于观测应用的启动和退出。 | **错误码**: 以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 | 错误码ID | 错误信息 | | ------- | -------- | | 201 | Permission denied. | | 202 | Not System App. Interface caller is not a system app. | | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | | 16000050 | Internal error. | **示例:** ```ts import { appManager } from '@kit.AbilityKit'; import { BusinessError } from '@kit.BasicServicesKit'; let observer: appManager.AppForegroundStateObserver = { onAppStateChanged(appStateData) { console.log(`[appManager] onAppStateChanged: ${JSON.stringify(appStateData)}`); }, }; try { appManager.on('appForegroundState', observer); } catch (paramError) { let code = (paramError as BusinessError).code; let message = (paramError as BusinessError).message; console.error(`[appManager] error: ${code}, ${message}`); } ``` ## appManager.on('abilityFirstFrameState')12+ on(type: 'abilityFirstFrameState', observer: AbilityFirstFrameStateObserver, bundleName?: string): void 注册监听Ability首帧绘制完成事件观察者对象,可用于系统应用监听Ability首帧绘制事件。 **系统接口**:此接口为系统接口。 **需要权限**:ohos.permission.RUNNING_STATE_OBSERVER **系统能力**:SystemCapability.Ability.AbilityRuntime.Core **参数:** | 参数名 | 类型 | 必填 | 说明 | | ---------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | | type | string | 是 | 调用接口类型,固定填'abilityFirstFrameState'字符串。 | | observer | [AbilityFirstFrameStateObserver](js-apis-inner-application-abilityFirstFrameStateObserver-sys.md) | 是 | 表示待注册的Ability首帧绘制完成事件观察者对象。 | | bundleName | string | 否 | 表示待监听的Ability的应用bundleName,不填表示注册监听所有应用ability首帧绘制完成事件。 | **错误码**: 以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 | 错误码ID | 错误信息 | | ------- | -------- | | 201 | Permission denied. | | 202 | Not System App. Interface caller is not a system app. | | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | | 16000050 | Internal error. | **示例:** ```ts import { appManager } from '@kit.AbilityKit'; import { BusinessError } from '@kit.BasicServicesKit'; let abilityFirstFrameStateObserverForAll: appManager.AbilityFirstFrameStateObserver = { onAbilityFirstFrameDrawn(abilityStateData: appManager.AbilityFirstFrameStateData) { console.log("abilityFirstFrame: ", JSON.stringify(abilityStateData)); } }; try { appManager.on('abilityFirstFrameState', abilityFirstFrameStateObserverForAll); } catch (e) { let code = (e as BusinessError).code; let message = (e as BusinessError).message; console.error(`[appManager] error: ${code}, ${message}`); } ``` ## appManager.off('applicationState') off(type: 'applicationState', observerId: number, callback: AsyncCallback\): void 取消注册应用程序状态观测器。 **需要权限**:ohos.permission.RUNNING_STATE_OBSERVER **系统能力**:SystemCapability.Ability.AbilityRuntime.Core **系统接口**:此接口为系统接口。 **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | | type | string | 是 | 调用接口类型,固定填'applicationState'字符串。 | | observerId | number | 是 | 表示观测器的编号代码。 | | callback | AsyncCallback\ | 是 | 以回调方式返回接口运行结果,可进行错误处理或其他自定义处理。 | **错误码**: 以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 | 错误码ID | 错误信息 | | ------- | -------- | | 201 | Permission denied. | | 202 | Not System App. Interface caller is not a system app. | | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | | 16000050 | Internal error. | **示例:** ```ts import { appManager } from '@kit.AbilityKit'; import { BusinessError } from '@kit.BasicServicesKit'; let observerId = 0; let applicationStateObserver: appManager.ApplicationStateObserver = { onForegroundApplicationChanged(appStateData) { console.log(`[appManager] onForegroundApplicationChanged: ${JSON.stringify(appStateData)}`); }, onAbilityStateChanged(abilityStateData) { console.log(`[appManager] onAbilityStateChanged: ${JSON.stringify(abilityStateData)}`); }, onProcessCreated(processData) { console.log(`[appManager] onProcessCreated: ${JSON.stringify(processData)}`); }, onProcessDied(processData) { console.log(`[appManager] onProcessDied: ${JSON.stringify(processData)}`); }, onProcessStateChanged(processData) { console.log(`[appManager] onProcessStateChanged: ${JSON.stringify(processData)}`); }, onAppStarted(appStateData) { console.log(`[appManager] onAppStarted: ${JSON.stringify(appStateData)}`); }, onAppStopped(appStateData) { console.log(`[appManager] onAppStopped: ${JSON.stringify(appStateData)}`); } }; let bundleNameList = ['bundleName1', 'bundleName2']; try { observerId = appManager.on('applicationState', applicationStateObserver, bundleNameList); console.log(`[appManager] observerCode: ${observerId}`); } catch (paramError) { let code = (paramError as BusinessError).code; let message = (paramError as BusinessError).message; console.error(`[appManager] error: ${code}, ${message} `); } // 2.注销应用状态监听器 function unregisterApplicationStateObserverCallback(err: BusinessError) { if (err) { console.error(`unregisterApplicationStateObserverCallback fail, err: ${JSON.stringify(err)}`); } else { console.log('unregisterApplicationStateObserverCallback success.'); } } try { appManager.off('applicationState', observerId, unregisterApplicationStateObserverCallback); } catch (paramError) { let code = (paramError as BusinessError).code; let message = (paramError as BusinessError).message; console.error(`[appManager] error: ${code}, ${message}`); } ``` ## appManager.off('appForegroundState')11+ off(type: 'appForegroundState', observer?: AppForegroundStateObserver): void 取消注册应用启动和退出的观测器。 **系统接口**:此接口为系统接口。 **需要权限**:ohos.permission.RUNNING_STATE_OBSERVER **系统能力**:SystemCapability.Ability.AbilityRuntime.Core **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | | type | string | 是 | 调用接口类型,固定填'appForegroundState'字符串。| | observer | [AppForegroundStateObserver](js-apis-inner-application-appForegroundStateObserver-sys.md) | 否 | 取消注册的应用启动和退出观测器。| **错误码**: 以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 | 错误码ID | 错误信息 | | ------- | -------- | | 201 | Permission denied. | | 202 | Not System App. Interface caller is not a system app. | | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | | 16000050 | Internal error. | **示例:** ```ts import { appManager } from '@kit.AbilityKit'; import { BusinessError } from '@kit.BasicServicesKit'; let observer_: appManager.AppForegroundStateObserver | undefined; // 1.注册应用启动和退出的监听器 let observer: appManager.AppForegroundStateObserver = { onAppStateChanged(appStateData: appManager.AppStateData) { console.log(`[appManager] onAppStateChanged: ${JSON.stringify(appStateData)}`); }, }; try { appManager.on('appForegroundState', observer); // 保存observer对象,用于注销 observer_ = observer; } catch (paramError) { let code = (paramError as BusinessError).code; let message = (paramError as BusinessError).message; console.error(`[appManager] error: ${code}, ${message}`); } // 2.注销监听器 try { appManager.off('appForegroundState', observer_); } catch (paramError) { let code = (paramError as BusinessError).code; let message = (paramError as BusinessError).message; console.error(`[appManager] error: ${code}, ${message}`); } ``` ## appManager.off('abilityFirstFrameState')12+ off(type: 'abilityFirstFrameState', observer?: AbilityFirstFrameStateObserver): void 取消注册监听Ability首帧绘制完成事件观察者对象。 **系统接口**:此接口为系统接口。 **需要权限**:ohos.permission.RUNNING_STATE_OBSERVER **系统能力**:SystemCapability.Ability.AbilityRuntime.Core **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | | type | string | 是 | 调用接口类型,固定填'abilityFirstFrameState'字符串。 | | observer | [AbilityFirstFrameStateObserver](js-apis-inner-application-abilityFirstFrameStateObserver-sys.md) | 否 | 表示待取消的Ability首帧绘制完成事件观察者对象,不填表示取消所有监听对象。 | **错误码**: 以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 | 错误码ID | 错误信息 | | ------- | -------- | | 201 | Permission denied. | | 202 | Not System App. Interface caller is not a system app. | | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | | 16000050 | Internal error. | **示例:** ```ts import { appManager } from '@kit.AbilityKit'; import { BusinessError } from '@kit.BasicServicesKit'; let abilityFirstFrameStateObserverForAll: appManager.AbilityFirstFrameStateObserver = { onAbilityFirstFrameDrawn(abilityStateData: appManager.AbilityFirstFrameStateData) { console.log("abilityFirstFrame: ", JSON.stringify(abilityStateData)); } }; try { appManager.on('abilityFirstFrameState', abilityFirstFrameStateObserverForAll); } catch (e) { let code = (e as BusinessError).code; let message = (e as BusinessError).message; console.error(`[appManager] error: ${code}, ${message}`); } try { appManager.off('abilityFirstFrameState', abilityFirstFrameStateObserverForAll); } catch (e) { let code = (e as BusinessError).code; let message = (e as BusinessError).message; console.error(`[appManager] error: ${code}, ${message}`); } ``` ## appManager.getForegroundApplications getForegroundApplications(callback: AsyncCallback\>): void 获取当前所有前台应用的信息。该应用信息由[AppStateData](js-apis-inner-application-appStateData.md)定义。 **需要权限**:ohos.permission.GET_RUNNING_INFO **系统能力**:SystemCapability.Ability.AbilityRuntime.Core **系统接口**:此接口为系统接口。 **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | | callback | AsyncCallback\> | 是 | 以回调方式方式返回接口运行结果及应用状态数据数组,可进行错误处理或其他自定义处理。 | **错误码**: 以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 | 错误码ID | 错误信息 | | ------- | -------- | | 201 | Permission denied. | | 202 | Not System App. Interface caller is not a system app. | | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | | 16000050 | Internal error. | **示例:** ```ts import { appManager } from '@kit.AbilityKit'; import { BusinessError } from '@kit.BasicServicesKit'; function getForegroundApplicationsCallback(err: BusinessError, data: Array) { if (err) { console.error(`getForegroundApplicationsCallback fail, err: ${JSON.stringify(err)}`); } else { console.log(`getForegroundApplicationsCallback success, data: ${JSON.stringify(data)}`); } } try { appManager.getForegroundApplications(getForegroundApplicationsCallback); } catch (paramError) { let code = (paramError as BusinessError).code; let message = (paramError as BusinessError).message; console.error(`[appManager] error: ${code}, ${message}`); } ``` ## appManager.getForegroundApplications getForegroundApplications(): Promise\> 获取当前所有前台应用的信息。该应用信息由[AppStateData](js-apis-inner-application-appStateData.md)定义。 **需要权限**:ohos.permission.GET_RUNNING_INFO **系统能力**:SystemCapability.Ability.AbilityRuntime.Core **系统接口**:此接口为系统接口。 **返回值:** | 类型 | 说明 | | -------- | -------- | | Promise\> | 返回前台进程应用程序的数组。 | **错误码**: 以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 | 错误码ID | 错误信息 | | ------- | -------- | | 201 | Permission denied. | | 202 | Not System App. Interface caller is not a system app. | | 16000050 | Internal error. | **示例:** ```ts import { appManager } from '@kit.AbilityKit'; import { BusinessError } from '@kit.BasicServicesKit'; appManager.getForegroundApplications().then((data) => { console.log(`getForegroundApplications success, data: ${JSON.stringify(data)}`); }).catch((err: BusinessError) => { console.error(`getForegroundApplications fail, err: ${JSON.stringify(err)}`); }); ``` ## appManager.killProcessWithAccount killProcessWithAccount(bundleName: string, accountId: number): Promise\ 终止account进程。使用Promise异步回调。 > **说明:** > > 当accountId为当前用户时,不需要校验ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS权限。 **需要权限**:ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS, ohos.permission.KILL_APP_PROCESSES or ohos.permission.CLEAN_BACKGROUND_PROCESSES **系统能力**:SystemCapability.Ability.AbilityRuntime.Core **系统接口**:此接口为系统接口。 **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | | bundleName | string | 是 | Bundle名称。 | | accountId | number | 是 | 系统账号的账号ID,详情参考[getOsAccountLocalId](../apis-basic-services-kit/js-apis-osAccount.md#getosaccountlocalid9)。 | **返回值:** | 类型 | 说明 | | -------------- | --------------- | | Promise\ | Promise对象。无返回结果的Promise对象。 | **错误码**: 以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 | 错误码ID | 错误信息 | | ------- | -------- | | 201 | Permission denied. | | 202 | Not System App. Interface caller is not a system app. | | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | | 16000050 | Internal error. | **示例:** ```ts import { appManager } from '@kit.AbilityKit'; import { BusinessError } from '@kit.BasicServicesKit'; let bundleName = 'bundleName'; let accountId = 0; try { appManager.killProcessWithAccount(bundleName, accountId).then(() => { console.log('killProcessWithAccount success'); }).catch((err: BusinessError) => { console.error(`killProcessWithAccount fail, err: ${JSON.stringify(err)}`); }); } catch (paramError) { let code = (paramError as BusinessError).code; let message = (paramError as BusinessError).message; console.error(`[appManager] error: ${code}, ${message}`); } ``` ## appManager.killProcessWithAccount14+ killProcessWithAccount(bundleName: string, accountId: number, clearPageStack: boolean, appIndex?: number): Promise\ 终止account进程。使用Promise异步回调。 > **说明:** > > 当accountId为当前用户时,不需要校验ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS权限。 **需要权限**:ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS, ohos.permission.CLEAN_BACKGROUND_PROCESSES **系统能力**:SystemCapability.Ability.AbilityRuntime.Core **系统接口**:此接口为系统接口。 **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | | bundleName | string | 是 | Bundle名称。 | | accountId | number | 是 | 系统账号的账号ID,详情参考[getOsAccountLocalId](../apis-basic-services-kit/js-apis-osAccount.md#getosaccountlocalid9)。 | | clearPageStack | boolean | 是 | 表示是否清除页面堆栈。true表示清除,false表示不清除。 | | appIndex | number | 否 | 应用分身ID。 | **返回值:** | 类型 | 说明 | | -------------- | --------------- | | Promise\ | Promise对象。无返回结果的Promise对象。 | **错误码**: 以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 | 错误码ID | 错误信息 | | ------- | -------- | | 201 | Permission denied. | | 202 | Not System App. Interface caller is not a system app. | | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | | 16000050 | Internal error. | **示例:** ```ts import { appManager } from '@kit.AbilityKit'; import { BusinessError } from '@kit.BasicServicesKit'; let bundleName = 'bundleName'; let accountId = 0; let isClearPageStack = false; let appIndex = 1; try { appManager.killProcessWithAccount(bundleName, accountId, isClearPageStack, appIndex).then(() => { console.log('killProcessWithAccount success'); }).catch((err: BusinessError) => { console.error(`killProcessWithAccount fail, err: ${JSON.stringify(err)}`); }); } catch (paramError) { let code = (paramError as BusinessError).code; let message = (paramError as BusinessError).message; console.error(`[appManager] error: ${code}, ${message}`); } ``` ## appManager.killProcessWithAccount killProcessWithAccount(bundleName: string, accountId: number, callback: AsyncCallback\): void 终止account进程。使用callback异步回调。 > **说明:** > > 当accountId为当前用户时,不需要校验ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS权限。 **需要权限**:ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS, ohos.permission.KILL_APP_PROCESSES or ohos.permission.CLEAN_BACKGROUND_PROCESSES **系统能力**:SystemCapability.Ability.AbilityRuntime.Core **系统接口**:此接口为系统接口。 **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | | bundleName | string | 是 | 应用Bundle名称。 | | accountId | number | 是 | 系统账号的账号ID,详情参考[getOsAccountLocalId](../apis-basic-services-kit/js-apis-osAccount.md#getosaccountlocalid9)。 | | callback | AsyncCallback\ | 是 | 以回调方式返回接口运行结果,可进行错误处理或其他自定义处理。 | **错误码**: 以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 | 错误码ID | 错误信息 | | ------- | -------- | | 201 | Permission denied. | | 202 | Not System App. Interface caller is not a system app. | | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | | 16000050 | Internal error. | **示例:** ```ts import { appManager } from '@kit.AbilityKit'; import { BusinessError } from '@kit.BasicServicesKit'; let bundleName = 'bundleName'; let accountId = 0; function killProcessWithAccountCallback(err: BusinessError) { if (err) { console.error(`killProcessWithAccountCallback fail, err: ${JSON.stringify(err)}`); } else { console.log('killProcessWithAccountCallback success.'); } } appManager.killProcessWithAccount(bundleName, accountId, killProcessWithAccountCallback); ``` ## appManager.killProcessesByBundleName killProcessesByBundleName(bundleName: string, callback: AsyncCallback\) 通过Bundle名称终止进程。 **需要权限**:ohos.permission.KILL_APP_PROCESSES or ohos.permission.CLEAN_BACKGROUND_PROCESSES **系统能力**:SystemCapability.Ability.AbilityRuntime.Core **系统接口**:此接口为系统接口。 **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | | bundleName | string | 是 | 表示Bundle名称。 | | callback | AsyncCallback\ | 是 | 以回调方式返回接口运行结果,可进行错误处理或其他自定义处理。 | **错误码**: 以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 | 错误码ID | 错误信息 | | ------- | -------- | | 201 | Permission denied. | | 202 | Not System App. Interface caller is not a system app. | | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | | 16000050 | Internal error. | **示例:** ```ts import { appManager } from '@kit.AbilityKit'; import { BusinessError } from '@kit.BasicServicesKit'; let bundleName = 'bundleName'; function killProcessesByBundleNameCallback(err: BusinessError) { if (err) { console.error(`killProcessesByBundleNameCallback fail, err: ${JSON.stringify(err)}`); } else { console.log('killProcessesByBundleNameCallback success.'); } } try { appManager.killProcessesByBundleName(bundleName, killProcessesByBundleNameCallback); } catch (paramError) { let code = (paramError as BusinessError).code; let message = (paramError as BusinessError).message; console.error(`[appManager] error: ${code}, ${message}`); } ``` ## appManager.killProcessesByBundleName killProcessesByBundleName(bundleName: string): Promise\ 通过Bundle名称终止进程。 **需要权限**:ohos.permission.KILL_APP_PROCESSES or ohos.permission.CLEAN_BACKGROUND_PROCESSES **系统能力**:SystemCapability.Ability.AbilityRuntime.Core **系统接口**:此接口为系统接口。 **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | | bundleName | string | 是 | 表示Bundle名称。 | **返回值:** | 类型 | 说明 | | -------- | -------- | | Promise\ | Promise对象。无返回结果的Promise对象。 | **错误码**: 以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 | 错误码ID | 错误信息 | | ------- | -------- | | 201 | Permission denied. | | 202 | Not System App. Interface caller is not a system app. | | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | | 16000050 | Internal error. | **示例:** ```ts import { appManager } from '@kit.AbilityKit'; import { BusinessError } from '@kit.BasicServicesKit'; let bundleName = 'bundleName'; try { appManager.killProcessesByBundleName(bundleName).then((data) => { console.log('killProcessesByBundleName success.'); }).catch((err: BusinessError) => { console.error(`killProcessesByBundleName fail, err: ${JSON.stringify(err)}`); }); } catch (paramError) { let code = (paramError as BusinessError).code; let message = (paramError as BusinessError).message; console.error(`[appManager] error: ${code}, ${message}`); } ``` ## appManager.clearUpApplicationData clearUpApplicationData(bundleName: string, callback: AsyncCallback\) 通过Bundle名称清除应用数据。 **需要权限**:ohos.permission.CLEAN_APPLICATION_DATA **系统能力**:SystemCapability.Ability.AbilityRuntime.Core **系统接口**:此接口为系统接口。 **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | | bundleName | string | 是 | Bundle名称。 | | callback | AsyncCallback\ | 是 | 以回调方式返回接口运行结果,可进行错误处理或其他自定义处理。 | **错误码**: 以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 | 错误码ID | 错误信息 | | ------- | -------- | | 201 | Permission denied. | | 202 | Not System App. Interface caller is not a system app. | | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | | 16000050 | Internal error. | **示例:** ```ts import { appManager } from '@kit.AbilityKit'; import { BusinessError } from '@kit.BasicServicesKit'; let bundleName = 'bundleName'; function clearUpApplicationDataCallback(err: BusinessError) { if (err) { console.error(`clearUpApplicationDataCallback fail, err: ${JSON.stringify(err)}`); } else { console.log('clearUpApplicationDataCallback success.'); } } try { appManager.clearUpApplicationData(bundleName, clearUpApplicationDataCallback); } catch (paramError) { let code = (paramError as BusinessError).code; let message = (paramError as BusinessError).message; console.error(`[appManager] error: ${code}, ${message}`); } ``` ## appManager.clearUpApplicationData clearUpApplicationData(bundleName: string): Promise\ 通过Bundle名称清除应用数据。 **需要权限**:ohos.permission.CLEAN_APPLICATION_DATA **系统能力**:SystemCapability.Ability.AbilityRuntime.Core **系统接口**:此接口为系统接口。 **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | | bundleName | string | 是 | 表示Bundle名称。 | **返回值:** | 类型 | 说明 | | -------- | -------- | | Promise\ | 以Promise方式返回接口运行结果,可进行错误处理或其他自定义处理。 | **错误码**: 以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 | 错误码ID | 错误信息 | | ------- | -------- | | 201 | Permission denied. | | 202 | Not System App. Interface caller is not a system app. | | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | | 16000050 | Internal error. | **示例:** ```ts import { appManager } from '@kit.AbilityKit'; import { BusinessError } from '@kit.BasicServicesKit'; let bundleName = 'bundleName'; try { appManager.clearUpApplicationData(bundleName).then((data) => { console.log('clearUpApplicationData success.'); }).catch((err: BusinessError) => { console.error(`clearUpApplicationData fail, err: ${JSON.stringify(err)}`); }); } catch (paramError) { let code = (paramError as BusinessError).code; let message = (paramError as BusinessError).message; console.error(`[appManager] error: ${code}, ${message}`); } ``` ## appManager.getProcessMemoryByPid10+ getProcessMemoryByPid(pid: number, callback: AsyncCallback\): void 通过pid查询对应进程占用的内存大小。 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core **系统接口**:此接口为系统接口。 **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | | pid | number | 是 | 表示进程id,详情参考[getRunningProcessInfoByBundleName](#appmanagergetrunningprocessinfobybundlename10)。 | | callback | AsyncCallback\ | 是 | 以回调方式返回接口运行结果及进程占用的内存大小(单位KB),可进行错误处理或其他自定义处理。 | **错误码**: 以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 | 错误码ID | 错误信息 | | ------- | -------- | | 202 | Not System App. Interface caller is not a system app. | | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | | 16000050 | Internal error. | **示例:** ```ts import { appManager } from '@kit.AbilityKit'; import { BusinessError } from '@kit.BasicServicesKit'; let pid = 0; function getProcessMemoryByPidCallback(err: BusinessError, data: number) { if (err) { console.error(`getProcessMemoryByPidCallback fail, err: ${JSON.stringify(err)}`); } else { console.log('getProcessMemoryByPidCallback success.'); } } try { appManager.getProcessMemoryByPid(pid, getProcessMemoryByPidCallback); } catch (paramError) { let code = (paramError as BusinessError).code; let message = (paramError as BusinessError).message; console.error(`[appManager] error: ${code}, ${message}`); } ``` ## appManager.getProcessMemoryByPid10+ getProcessMemoryByPid(pid: number): Promise\ 通过pid查询对应进程占用的内存大小。 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core **系统接口**:此接口为系统接口。 **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | | pid | number | 是 | 表示进程id,详情参考[getRunningProcessInfoByBundleName](#appmanagergetrunningprocessinfobybundlename10)。 | **返回值:** | 类型 | 说明 | | -------- | -------- | | Promise\ | 以Promise方式返回接口运行结果及进程占用的内存大小(单位KB),可进行错误处理或其他自定义处理。 | **错误码**: 以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 | 错误码ID | 错误信息 | | ------- | -------- | | 202 | Not System App. Interface caller is not a system app. | | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | | 16000050 | Internal error. | **示例:** ```ts import { appManager } from '@kit.AbilityKit'; import { BusinessError } from '@kit.BasicServicesKit'; let pid = 0; try { appManager.getProcessMemoryByPid(pid).then((data) => { console.log('getProcessMemoryByPid success.'); }).catch((err: BusinessError) => { console.error(`getProcessMemoryByPid fail, err: ${JSON.stringify(err)}`); }); } catch (paramError) { let code = (paramError as BusinessError).code; let message = (paramError as BusinessError).message; console.error(`[appManager] error: ${code}, ${message}`); } ``` ## appManager.getRunningProcessInfoByBundleName10+ getRunningProcessInfoByBundleName(bundleName: string, callback: AsyncCallback\>): void 通过bundleName获取有关运行进程的信息。 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core **系统接口**:此接口为系统接口。 **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | | bundleName | string | 是 | 表示Bundle名称。 | | callback | AsyncCallback\> | 是 | 以回调方式返回接口运行结果及有关运行进程的信息,可进行错误处理或其他自定义处理。 | **错误码**: 以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 | 错误码ID | 错误信息 | | ------- | -------- | | 202 | Not System App. Interface caller is not a system app. | | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | | 16000050 | Internal error. | **示例:** ```ts import { appManager } from '@kit.AbilityKit'; import { BusinessError } from '@kit.BasicServicesKit'; let bundleName = "bundleName"; function getRunningProcessInfoByBundleNameCallback(err: BusinessError, data: Array) { if (err) { console.error(`getRunningProcessInfoByBundleNameCallback fail, err: ${JSON.stringify(err)}`); } else { console.log('getRunningProcessInfoByBundleNameCallback success.'); } } try { appManager.getRunningProcessInfoByBundleName(bundleName, getRunningProcessInfoByBundleNameCallback); } catch (paramError) { let code = (paramError as BusinessError).code; let message = (paramError as BusinessError).message; console.error(`[appManager] error: ${code}, ${message}`); } ``` ## appManager.getRunningProcessInfoByBundleName10+ getRunningProcessInfoByBundleName(bundleName: string): Promise\> 通过bundleName获取有关运行进程的信息。 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core **系统接口**:此接口为系统接口。 **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | | bundleName | string | 是 | 表示Bundle名称。 | **返回值:** | 类型 | 说明 | | -------- | -------- | | Promise\> | 以Promise方式返回接口运行结果及有关运行进程的信息,可进行错误处理或其他自定义处理。 | **错误码**: 以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 | 错误码ID | 错误信息 | | ------- | -------- | | 202 | Not System App. Interface caller is not a system app. | | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | | 16000050 | Internal error. | **示例:** ```ts import { appManager } from '@kit.AbilityKit'; import { BusinessError } from '@kit.BasicServicesKit'; let bundleName = "bundleName"; try { appManager.getRunningProcessInfoByBundleName(bundleName).then((data) => { console.log('getRunningProcessInfoByBundleName success.'); }).catch((err: BusinessError) => { console.error(`getRunningProcessInfoByBundleName fail, err: ${JSON.stringify(err)}`); }); } catch (paramError) { let code = (paramError as BusinessError).code; let message = (paramError as BusinessError).message; console.error(`[appManager] error: ${code}, ${message}`); } ``` ## appManager.getRunningProcessInfoByBundleName10+ getRunningProcessInfoByBundleName(bundleName: string, userId: number, callback: AsyncCallback\>): void 通过bundleName和userId获取有关运行进程的信息。 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core **系统接口**:此接口为系统接口。 **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | | bundleName | string | 是 | 表示Bundle名称。 | | userId | number | 是 | 表示用户Id。 | | callback | AsyncCallback\> | 是 | 以回调方式返回接口运行结果及有关运行进程的信息,可进行错误处理或其他自定义处理。 | **错误码**: 以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 | 错误码ID | 错误信息 | | ------- | -------- | | 202 | Not System App. Interface caller is not a system app. | | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | | 16000050 | Internal error. | **示例:** ```ts import { appManager } from '@kit.AbilityKit'; import { BusinessError } from '@kit.BasicServicesKit'; let bundleName = "bundleName"; let userId = 0; function getRunningProcessInfoByBundleNameCallback(err: BusinessError, data: Array) { if (err) { console.error(`getRunningProcessInfoByBundleNameCallback fail, err: ${JSON.stringify(err)}`); } else { console.log('getRunningProcessInfoByBundleNameCallback success.'); } } try { appManager.getRunningProcessInfoByBundleName(bundleName, userId, getRunningProcessInfoByBundleNameCallback); } catch (paramError) { let code = (paramError as BusinessError).code; let message = (paramError as BusinessError).message; console.error(`[appManager] error: ${code}, ${message}`); } ``` ## appManager.getRunningProcessInfoByBundleName10+ getRunningProcessInfoByBundleName(bundleName: string, userId: number): Promise\> 通过bundleName和userId获取有关运行进程的信息。 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core **系统接口**:此接口为系统接口。 **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | | bundleName | string | 是 | 表示Bundle名称。 | | userId | number | 是 | 表示用户Id。 | **返回值:** | 类型 | 说明 | | -------- | -------- | | Promise\> | 以Promise方式返回接口运行结果及有关运行进程的信息,可进行错误处理或其他自定义处理。 | **错误码**: 以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 | 错误码ID | 错误信息 | | ------- | -------- | | 202 | Not System App. Interface caller is not a system app. | | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | | 16000050 | Internal error. | **示例:** ```ts import { appManager } from '@kit.AbilityKit'; import { BusinessError } from '@kit.BasicServicesKit'; let bundleName = "bundleName"; let userId = 0; try { appManager.getRunningProcessInfoByBundleName(bundleName, userId).then((data) => { console.log('getRunningProcessInfoByBundleName success.'); }).catch((err: BusinessError) => { console.error(`getRunningProcessInfoByBundleName fail, err: ${JSON.stringify(err)}`); }); } catch (paramError) { let code = (paramError as BusinessError).code; let message = (paramError as BusinessError).message; console.error(`[appManager] error: ${code}, ${message}`); } ``` ## appManager.isApplicationRunning11+ isApplicationRunning(bundleName: string): Promise\ 查询单个应用是否正在运行。使用Promise异步回调。 **系统接口**:此接口为系统接口。 **需要权限**:ohos.permission.GET_RUNNING_INFO **系统能力**:SystemCapability.Ability.AbilityRuntime.Core **参数**: | 参数名 | 类型 | 必填 | 说明 | | --------- | ---------------------------------------- | ---- | -------------- | | bundleName | string | 是 | 表示要查询的应用的包名。 | **返回值:** | 类型 | 说明 | | -------- | -------- | | Promise\ | Promise对象。返回true表示查询的应用正在运行,返回false表示查询的应用没有运行。 | **错误码**: 以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 | 错误码ID | 错误信息 | | ------- | -------- | | 201 | Permission denied. | | 202 | Not System App. Interface caller is not a system app. | | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | | 16000050 | Internal error. | **示例:** ```ts import { appManager } from '@kit.AbilityKit'; import { BusinessError } from '@kit.BasicServicesKit'; let bundleName = "com.example.myapplication"; appManager.isApplicationRunning(bundleName).then((data) => { console.log(`The application running is: ${JSON.stringify(data)}`); }).catch((error: BusinessError) => { console.error(`error: ${JSON.stringify(error)}`); }); ``` ## appManager.isApplicationRunning11+ isApplicationRunning(bundleName: string, callback: AsyncCallback\): void 查询单个应用是否正在运行。使用callback异步回调。 **系统接口**:此接口为系统接口。 **需要权限**:ohos.permission.GET_RUNNING_INFO **系统能力**:SystemCapability.Ability.AbilityRuntime.Core **参数**: | 参数名 | 类型 | 必填 | 说明 | | --------- | ---------------------------------------- | ---- | -------------- | | bundleName | string | 是 | 表示要查询的共享库包名。 | | callback | AsyncCallback<boolean> | 是 | 回调函数。返回true表示查询的应用正在运行,返回false表示查询的应用没有运行。 | **错误码**: 以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 | 错误码ID | 错误信息 | | ------- | -------- | | 201 | Permission denied. | | 202 | Not System App. Interface caller is not a system app. | | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | | 16000050 | Internal error. | **示例:** ```ts import { appManager } from '@kit.AbilityKit'; import { BusinessError } from '@kit.BasicServicesKit'; let bundleName = "com.example.myapplication"; try { appManager.isApplicationRunning(bundleName, (err, data) => { if (err) { console.error(`err: ${JSON.stringify(err)}`); } else { console.log(`The application running is: ${JSON.stringify(data)}`); } }); } catch (paramError) { let code = (paramError as BusinessError).code; let message = (paramError as BusinessError).message; console.error(`[appManager] error: ${code}, ${message}`); } ``` ## ApplicationState 应用状态,该类型为枚举,可配合[AbilityStateData](js-apis-inner-application-abilityStateData.md)返回相应的应用状态。 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core **系统接口**:此接口为系统接口。 | 名称 | 值 | 说明 | | -------------------- | --- | --------------------------------- | | STATE_CREATE | 0 | 应用处于创建状态。 | | STATE_FOREGROUND | 2 | 应用处于前台状态。 | | STATE_ACTIVE | 3 | 应用处于获焦状态。 | | STATE_BACKGROUND | 4 | 应用处于后台不可见状态。 | | STATE_DESTROY | 5 | 应用处于销毁状态。 | ## appManager.getRunningProcessInformationByBundleType12+ getRunningProcessInformationByBundleType(bundleType: bundleManager.BundleType): Promise\> 根据包类型获取当前运行进程的有关信息。使用Promise异步回调。 **系统接口**:此接口为系统接口。 **需要权限**:ohos.permission.GET_RUNNING_INFO **系统能力**:SystemCapability.Ability.AbilityRuntime.Core **参数**: | 参数名 | 类型 | 必填 | 说明 | | --------- | ---------------------------------------- | ---- | -------------- | | bundleType | [bundleManager.BundleType](js-apis-bundleManager.md#bundletype) | 是 | 表示要查询的包类型。 | **返回值:** | 类型 | 说明 | | -------- | -------- | | Promise\> | Promise对象,返回特定包类型的运行进程的信息。 | **错误码**: 以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 | 错误码ID | 错误信息 | | ------- | -------- | | 201 | Permission denied. | | 202 | Not system application. | | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | | 16000050 | Internal error. | **示例:** ```ts import { appManager, bundleManager } from '@kit.AbilityKit'; import { BusinessError } from '@kit.BasicServicesKit'; try { appManager.getRunningProcessInformationByBundleType(bundleManager.BundleType.ATOMIC_SERVICE) .then((data) => { console.log(`The running process information is: ${JSON.stringify(data)}`); }).catch((error: BusinessError) => { console.error(`error: ${JSON.stringify(error)}`); }); } catch (paramError) { let code = (paramError as BusinessError).code; let message = (paramError as BusinessError).message; console.error(`[appManager] error: ${code}, ${message}`); } ``` ## appManager.preloadApplication12+ preloadApplication(bundleName: string, userId: number, mode: PreloadMode, appIndex?: number): Promise\ 预加载应用进程。接口返回成功并不代表预加载成功,具体结果以目标应用进程是否创建成功为准。使用Promise异步回调。 **需要权限**:ohos.permission.PRELOAD_APPLICATION **系统能力**:SystemCapability.Ability.AbilityRuntime.Core **系统接口**:此接口为系统接口。 **模型约束**:此接口仅可在Stage模型下使用。 **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | | bundleName | string | 是 | 预加载的应用包名。 | | userId | number | 是 | 预加载的用户Id。 | | mode | [PreloadMode](#appmanagerpreloadmode12) | 是 | 预加载模式。 | | appIndex | number | 否 | 预加载应用分身的appIndex。 | **返回值:** | 类型 | 说明 | | -------------- | ---------------- | | Promise\ | Promise对象。无返回结果的Promise对象。 | **错误码**: 以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 | 错误码ID | 错误信息 | | ------- | -------- | | 201 | The application does not have permission to call the interface. | | 202 | Not system application. | | 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types; 3.Parameter verification failed. | | 16000050 | Internal error. | | 16300005 | The target bundle does not exist. | **示例:** ```ts import { appManager } from '@kit.AbilityKit'; import { BusinessError } from '@kit.BasicServicesKit'; import { hilog } from '@kit.PerformanceAnalysisKit'; try { let bundleName = "ohos.samples.etsclock"; let userId = 100; let mode = appManager.PreloadMode.PRESS_DOWN; let appIndex = 0; appManager.preloadApplication(bundleName, userId, mode, appIndex) .then(() => { hilog.info(0x0000, 'testTag', `preloadApplication success`); }) .catch((err: BusinessError) => { hilog.error(0x0000, 'testTag', `preloadApplication error, code: ${err.code}, msg:${err.message}`); }) } catch (err) { hilog.error(0x0000, 'testTag', `preloadApplication error, code: ${(err as BusinessError).code}, msg:${(err as BusinessError).message}`); } ``` ## appManager.getRunningMultiAppInfo12+ getRunningMultiAppInfo(bundleName: string): Promise\ 根据应用包名获取系统中运行态的应用多开(即在一个设备上运行多个相同的应用)的相关信息,使用Promise异步回调。 **需要权限**:ohos.permission.GET_RUNNING_INFO **系统能力**:SystemCapability.Ability.AbilityRuntime.Core **系统接口**:此接口为系统接口。 **模型约束**:此接口仅可在Stage模型下使用。 **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | | bundleName | string | 是 | 查询的应用包名。 | **返回值:** | 类型 | 说明 | | -------------- | ---------------- | | Promise\<[RunningMultiAppInfo](js-apis-inner-application-runningMultiAppInfo-sys.md)> | Promise对象。返回特定包名的运行态应用多开信息。 | **错误码**: 以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 | 错误码ID | 错误信息 | | ------- | -------- | | 201 | The application does not have permission to call the interface. | | 202 | Not system application. | | 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types; 3.Parameter verification failed. | | 16000072 | App clone or multi-instance is not supported. | | 18500001 | The bundle does not exist or no patch has been applied. | **示例:** ```ts import { appManager } from '@kit.AbilityKit'; import { hilog } from '@kit.PerformanceAnalysisKit'; import { BusinessError } from '@kit.BasicServicesKit'; try { let bundleName = "ohos.samples.etsclock"; appManager.getRunningMultiAppInfo(bundleName).then((info: appManager.RunningMultiAppInfo) => { hilog.info(0x0000, 'testTag', `getRunningMultiAppInfo success`); }).catch((err: BusinessError) => { hilog.error(0x0000, 'testTag', `getRunningMultiAppInfo error, code: ${err.code}, msg:${err.message}`); }) } catch (err) { hilog.error(0x0000, 'testTag', `getRunningMultiAppInfo error, code: ${err.code}, msg:${err.message}`); } ``` ## appManager.terminateMission12+ terminateMission(missionId: number): Promise\ 关闭指定的任务。使用Promise异步回调。 **需要权限**:ohos.permission.KILL_APP_PROCESSES **系统能力**:SystemCapability.Ability.AbilityRuntime.Core **系统接口**:此接口为系统接口。 **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | | missionId | number | 是 | 任务ID,可通过[getMissionInfos](js-apis-app-ability-missionManager-sys.md#missionmanagergetmissioninfos)获取。 | **返回值:** | 类型 | 说明 | | -------- | -------- | | Promise\ | Promise对象。无返回结果的Promise对象。 | **错误码**: 以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 | 错误码ID | 错误信息 | | ------- | -------- | | 201 | Permission denied. | | 202 | Not System App. Interface caller is not a system app. | | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | | 16000050 | Internal error. | **示例:** ```ts import { appManager } from '@kit.AbilityKit'; import { BusinessError } from '@kit.BasicServicesKit'; @Entry @Component struct Index { build() { Button('start link', { type: ButtonType.Capsule, stateEffect: true }) .width('87%') .height('5%') .margin({ bottom: '12vp' }) .onClick(() => { let missionId: number = 0; try { appManager.terminateMission(missionId).then(()=>{ console.log('terminateMission success.'); }).catch((err: BusinessError)=>{ console.error('terminateMission failed. err: ' + JSON.stringify(err)); }) } catch (paramError) { let code = (paramError as BusinessError).code; let message = (paramError as BusinessError).message; console.error(`[appManager] error: ${code}, ${message}`); } }) } } ``` ## appManager.getSupportedProcessCachePids14+ getSupportedProcessCachePids(bundleName : string): Promise\> 查询当前应用中支持缓存后快速启动的进程PID。 > **说明:** > > 本接口仅支持获取调用者所在系统账号下的进程PID。 **需要权限**:ohos.permission.GET_RUNNING_INFO **系统能力**:SystemCapability.Ability.AbilityRuntime.Core **系统接口**:此接口为系统接口。 **模型约束**:此接口仅可在Stage模型下使用。 **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | | bundleName | string | 是 | 表示要查询的应用包名。 | **返回值:** | 类型 | 说明 | | -------- | -------- | | Promise\> | Promise对象。返回一个数组,包含当前应用中支持缓存后快速启动的所有进程PID。 | **错误码**: 以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 | 错误码ID | 错误信息 | | ------- | -------- | | 201 | Permission denied. | | 202 | Not system application. | | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | | 801 | Capability not supported. | | 16000050 | Internal error. | **示例:** ```ts import { appManager } from '@kit.AbilityKit'; import { hilog } from '@kit.PerformanceAnalysisKit'; import { BusinessError } from '@kit.BasicServicesKit'; try { let bundleName = "ohos.samples.processcache"; appManager.getSupportedProcessCachePids(bundleName).then((pids: Array) => { hilog.info(0x0000, 'testTag', `pids: ${JSON.stringify(pids)}`); }).catch((err: BusinessError) => { hilog.error(0x0000, 'testTag', `get pids error, code: ${err.code}, msg:${err.message}`); }) } catch (err) { hilog.error(0x0000, 'testTag', `get pids error, code: ${err.code}, msg:${err.message}`); } ``` ## appManager.clearUpAppData13+ clearUpAppData(bundleName: string, appCloneIndex?: number): Promise\ 根据Bundle名称和应用分身索引,清除指定应用的数据。 **需要权限**:ohos.permission.CLEAN_APPLICATION_DATA **系统能力**:SystemCapability.Ability.AbilityRuntime.Core **系统接口**:此接口为系统接口。 **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | | bundleName | string | 是 | 表示Bundle名称。 | | appCloneIndex | number | 否 | 表示应用分身索引。 | **返回值:** | 类型 | 说明 | | -------- | -------- | | Promise\ | Promise对象。无返回结果的Promise对象。 | **错误码**: 以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 | 错误码ID | 错误信息 | | ------- | -------- | | 201 | Permission denied. | | 202 | Not System App. Interface caller is not a system app. | | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | | 16000050 | Internal error. | | 16000073 | The app clone index does not exist. | **示例:** ```ts import { appManager } from '@kit.AbilityKit'; import { BusinessError } from '@kit.BasicServicesKit'; let bundleName: string = 'com.ohos.demo'; let appCloneIndex: number = 0; try { appManager.clearUpAppData(bundleName, appCloneIndex).then(() => { console.log(`clearUpAppData success.`); }).catch((err: BusinessError) => { console.error(`clearUpAppData fail, err: ${JSON.stringify(err)}`); }); } catch (paramError) { let code = (paramError as BusinessError).code; let message = (paramError as BusinessError).message; console.error(`[appManager] error: ${code}, ${message}`); } ``` ## appManager.setKeepAliveForBundle14+ setKeepAliveForBundle(bundleName: string, userId: number, enable: boolean): Promise\ 为指定用户下的应用设置或取消保活。使用Promise异步回调。本接口当前仅支持2in1设备。 **需要权限**:ohos.permission.MANAGE_APP_KEEP_ALIVE **系统能力**:SystemCapability.Ability.AbilityRuntime.Core **系统接口**:此接口为系统接口。 **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | | bundleName | string | 是 | 表示要设置保活的应用包名。 | | userId | number | 是 | 表示要设置保活应用所属的用户ID。 | | enable | boolean | 是 | 表示对应用保活或者取消保活。 | **返回值:** | 类型 | 说明 | | -------- | -------- | | Promise\ | Promise对象。无返回结果的Promise对象。| **错误码**: 以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 | 错误码ID | 错误信息 | | ------- | -------- | | 201 | Permission denied. | | 202 | Not system application. | | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | | 801 | Capability not supported. | | 16000050 | Internal error. | | 16300005 | The target bundle does not exist. | | 16300008 | The target bundle has no main ability. | | 16300009 | The target bundle has no status-bar ability. | | 16300010 | The target application is not attached to status bar. | **示例:** ```ts import { appManager } from '@kit.AbilityKit'; import { BusinessError } from '@kit.BasicServicesKit'; try { let bundleName = "ohos.samples.keepaliveapp"; let userId = 100; appManager.setKeepAliveForBundle(bundleName, userId, true).then(() => { console.log(`setKeepAliveForBundle success`); }).catch((err: BusinessError) => { console.error(`setKeepAliveForBundle fail, err: ${JSON.stringify(err)}`); }); } catch (paramError) { let code = (paramError as BusinessError).code; let message = (paramError as BusinessError).message; console.error(`[appManager] setKeepAliveForBundle error: ${code}, ${message}`); } ``` ## appManager.getKeepAliveBundles14+ getKeepAliveBundles(type: KeepAliveAppType, userId?: number): Promise\> 获取指定用户下指定类型的保活应用信息。该应用信息由[KeepAliveBundleInfo](#keepalivebundleinfo14)定义。 使用Promise异步回调。本接口当前仅支持2in1设备。 **需要权限**:ohos.permission.MANAGE_APP_KEEP_ALIVE **系统能力**:SystemCapability.Ability.AbilityRuntime.Core **系统接口**:此接口为系统接口。 **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | | type | [KeepAliveAppType](#keepaliveapptype14) | 是 | 表示要查询的保活应用类型。 | | userId | number | 否 | 表示要设置保活应用所属的用户ID。 | **返回值:** | 类型 | 说明 | | -------- | -------- | | Promise\> | Promise对象,返回用户保活应用信息的数组。| **错误码**: 以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 | 错误码ID | 错误信息 | | ------- | -------- | | 201 | Permission denied. | | 202 | Not System App. Interface caller is not a system app. | | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | | 801 | Capability not supported. | | 16000050 | Internal error. | **示例:** ```ts import { appManager } from '@kit.AbilityKit'; import { BusinessError } from '@kit.BasicServicesKit'; let userId = 100; let type: appManager.KeepAliveAppType = appManager.KeepAliveAppType.THIRD_PARTY; try { appManager.getKeepAliveBundles(type, userId).then((data) => { console.log(`getKeepAliveBundles success, data: ${JSON.stringify(data)}`); }).catch((err: BusinessError) => { console.error(`getKeepAliveBundles fail, err: ${JSON.stringify(err)}`); }); } catch (paramError) { let code = (paramError as BusinessError).code; let message = (paramError as BusinessError).message; console.error(`[appManager] getKeepAliveBundles error: ${code}, ${message}`); } ``` ## appManager.killProcessesInBatch14+ killProcessesInBatch(pids: Array\): Promise\ 批量查杀进程。本接口当前仅支持2in1设备。 **需要权限**:ohos.permission.KILL_APP_PROCESSES **系统能力**:SystemCapability.Ability.AbilityRuntime.Core **系统接口**:此接口为系统接口。 **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | | pids | Array\ | 是 | 要查杀的进程ID。 | **返回值:** | 类型 | 说明 | | -------- | -------- | | Promise\ | Promise对象。无返回结果的Promise对象。 | **错误码**: 以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 | 错误码ID | 错误信息 | | ------- | -------- | | 201 | Permission denied. | | 202 | Not System App. Interface caller is not a system app. | | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | | 801 | Capability not supported. | | 16000050 | Internal error. | **示例:** ```ts import { appManager } from '@kit.AbilityKit'; import { BusinessError } from '@kit.BasicServicesKit'; try { let pids: Array = [100, 101, 102]; appManager.killProcessesInBatch(pids).then(() => { console.log(`killProcessesInBatch success`); }).catch((err: BusinessError) => { console.error(`killProcessesInBatch fail, err: ${JSON.stringify(err)}`); }); } catch (paramError) { let code = (paramError as BusinessError).code; let message = (paramError as BusinessError).message; console.error(`[appManager] killProcessesInBatch error: ${code}, ${message}`); } ```