# @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}`);
}
```