• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# @ohos.app.ability.appManager (appManager)(系统接口)
2<!--Kit: Ability Kit-->
3<!--Subsystem: Ability-->
4<!--Owner: @SKY2001-->
5<!--Designer: @yzkp-->
6<!--Tester: @lixueqing513-->
7<!--Adviser: @huipeizi-->
8
9appManager模块提供App管理的能力,包括查询当前是否处于稳定性测试场景、查询是否为ram受限设备、获取应用程序的内存大小、获取有关运行进程的信息等。
10
11> **说明:**
12>
13> 本模块首批接口从API version 9 开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
14>
15> 当前页面仅包含本模块的系统接口,其他公开接口参见[@ohos.app.ability.appManager (appManager)](js-apis-app-ability-appManager.md)。
16
17## 导入模块
18
19```ts
20import { appManager } from '@kit.AbilityKit';
21```
22
23## appManager.PreloadMode<sup>12+</sup>
24
25表示预加载应用进程模式的枚举。
26
27**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
28
29**系统接口**:此接口为系统接口。
30
31**模型约束**:此接口仅可在Stage模型下使用。
32
33| 名称        | 值  | 说明                         |
34| ----------- | --- | --------------------------- |
35| PRESS_DOWN  | 0 | 按下应用图标时进行应用进程预加载。 |
36
37## KeepAliveAppType<sup>14+</sup>
38
39表示被保活应用的应用类型。
40
41**系统接口**:此接口为系统接口。
42
43**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
44
45| 名称        | 值  | 说明 |
46| -------- | ---------- | -------- |
47| ALL  | 0 | 三方应用和系统应用。此选项只能作为[getKeepAliveBundles](#appmanagergetkeepalivebundles14)接口的入参被调用。  |
48| THIRD_PARTY | 1  | 三方应用。  |
49| SYSTEM | 2 | 系统应用。 |
50
51## KeepAliveSetter<sup>14+</sup>
52
53表示应用保活的设置方类型。
54
55**系统接口**:此接口为系统接口。
56
57**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
58
59| 名称        | 值  | 说明 |
60| -------- | ---------- | -------- |
61| SYSTEM | 0 | 应用保活设置方为系统。 |
62| USER  | 1 | 应用保活设置方为用户。  |
63
64## KeepAliveBundleInfo<sup>14+</sup>
65
66定义应用保活信息,可以通过[getKeepAliveBundles](#appmanagergetkeepalivebundles14)或[getKeepAliveAppServiceExtensions](#appmanagergetkeepaliveappserviceextensions20)获取。
67
68**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
69
70**系统接口**:此接口为系统接口。
71
72| 名称 | 类型 | 只读 | 可选 | 说明 |
73| ------------------------- | ------ | ---- | ---- | --------- |
74| bundleName   | string | 否 | 否  | Bundle名称。 |
75| type       | [KeepAliveAppType](#keepaliveapptype14) | 否 | 否 | 表示被保活应用的应用类型。   |
76| setter       | [KeepAliveSetter](#keepalivesetter14) | 否 | 否 | 表示应用保活设置者类型。   |
77| setterUserId<sup>20+</sup>   | number | 否 | 是  | 应用保活设置者的用户ID。 |
78| allowUserToCancel<sup>20+</sup>   | boolean | 否 | 是  | 表示是否允许用户取消保活。true表示允许,false表示不允许。 |
79
80## appManager.isSharedBundleRunning<sup>10+</sup>
81
82isSharedBundleRunning(bundleName: string, versionCode: number): Promise\<boolean>
83
84检查共享库是否正在使用。使用Promise异步回调。
85
86**需要权限**:ohos.permission.GET_RUNNING_INFO
87
88**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
89
90**系统接口**:此接口为系统接口。
91
92**参数**:
93
94| 参数名        | 类型                                       | 必填   | 说明             |
95| --------- | ---------------------------------------- | ---- | -------------- |
96| bundleName    | string   | 是    | 表示要查询的共享库包名。 |
97| versionCode   | number   | 是    | 表示要查询的共享库版本号。      |
98
99**返回值:**
100
101| 类型 | 说明 |
102| -------- | -------- |
103| Promise\<boolean> | Promise对象。返回true表示共享库正在使用,返回false表示共享库不在使用。 |
104
105**错误码**:
106
107以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。
108
109| 错误码ID | 错误信息 |
110| ------- | -------- |
111| 201 | Permission denied. |
112| 202 | Not System App. Interface caller is not a system app. |
113| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
114| 16000050 | Internal error. |
115
116**示例:**
117
118```ts
119import { appManager } from '@kit.AbilityKit';
120import { BusinessError } from '@kit.BasicServicesKit';
121
122const bundleName = "this is a bundleName";
123const versionCode = 1;
124
125appManager.isSharedBundleRunning(bundleName, versionCode).then((data) => {
126  console.info(`The shared bundle running is: ${JSON.stringify(data)}`);
127}).catch((error: BusinessError) => {
128  console.error(`error: ${JSON.stringify(error)}`);
129});
130```
131
132## appManager.isSharedBundleRunning<sup>10+</sup>
133
134isSharedBundleRunning(bundleName: string, versionCode: number, callback: AsyncCallback\<boolean>): void
135
136检查共享库是否正在使用。使用callback异步回调。
137
138**需要权限**:ohos.permission.GET_RUNNING_INFO
139
140**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
141
142**系统接口**:此接口为系统接口。
143
144**参数**:
145
146| 参数名        | 类型                                       | 必填   | 说明             |
147| --------- | ---------------------------------------- | ---- | -------------- |
148| bundleName    | string   | 是    | 表示要查询的共享库包名。 |
149| versionCode   | number   | 是    | 表示要查询的共享库版本号。      |
150| callback    | AsyncCallback\<boolean>> | 是    | 回调函数。返回true表示共享库正在使用,返回false表示共享库不在使用。 |
151
152**错误码**:
153
154以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。
155
156| 错误码ID | 错误信息 |
157| ------- | -------- |
158| 201 | Permission denied. |
159| 202 | Not System App. Interface caller is not a system app. |
160| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
161| 16000050 | Internal error. |
162
163**示例:**
164
165```ts
166import { appManager } from '@kit.AbilityKit';
167
168const bundleName = "this is a bundleName";
169const versionCode = 1;
170
171appManager.isSharedBundleRunning(bundleName, versionCode, (err, data) => {
172  if (err) {
173    console.error(`err: ${JSON.stringify(err)}`);
174  } else {
175    console.info(`The shared bundle running is: ${JSON.stringify(data)}`);
176  }
177});
178```
179
180## appManager.on('appForegroundState')<sup>11+</sup>
181
182on(type: 'appForegroundState', observer: AppForegroundStateObserver): void
183
184注册应用启动和退出的观测器,可用于系统应用观测所有应用的启动和退出。
185
186**系统接口**:此接口为系统接口。
187
188**需要权限**:ohos.permission.RUNNING_STATE_OBSERVER
189
190**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
191
192**参数:**
193
194| 参数名 | 类型 | 必填 | 说明 |
195| -------- | -------- | -------- | -------- |
196| type | string | 是 | 调用接口类型,固定填'appForegroundState'字符串。 |
197| observer | [AppForegroundStateObserver](js-apis-inner-application-appForegroundStateObserver-sys.md) | 是 | 应用状态观测器,用于观测应用的启动和退出。 |
198
199**错误码**:
200
201以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。
202
203| 错误码ID | 错误信息 |
204| ------- | -------- |
205| 201 | Permission denied. |
206| 202 | Not System App. Interface caller is not a system app. |
207| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
208| 16000050 | Internal error. |
209
210**示例:**
211
212```ts
213import { appManager } from '@kit.AbilityKit';
214import { BusinessError } from '@kit.BasicServicesKit';
215
216let observer: appManager.AppForegroundStateObserver = {
217  onAppStateChanged(appStateData) {
218    console.info(`[appManager] onAppStateChanged: ${JSON.stringify(appStateData)}`);
219  },
220};
221
222try {
223  appManager.on('appForegroundState', observer);
224} catch (paramError) {
225  let code = (paramError as BusinessError).code;
226  let message = (paramError as BusinessError).message;
227  console.error(`[appManager] error: ${code}, ${message}`);
228}
229```
230
231## appManager.on('abilityFirstFrameState')<sup>12+</sup>
232
233on(type: 'abilityFirstFrameState', observer: AbilityFirstFrameStateObserver, bundleName?: string): void
234
235注册监听Ability首帧绘制完成事件观察者对象,可用于系统应用监听Ability首帧绘制事件。
236
237**系统接口**:此接口为系统接口。
238
239**需要权限**:ohos.permission.RUNNING_STATE_OBSERVER
240
241**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
242
243**参数:**
244
245| 参数名     | 类型                                                         | 必填 | 说明                                                         |
246| ---------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
247| type       | string                                                       | 是   | 调用接口类型,固定填'abilityFirstFrameState'字符串。         |
248| observer   | [AbilityFirstFrameStateObserver](js-apis-inner-application-abilityFirstFrameStateObserver-sys.md) | 是   | 表示待注册的Ability首帧绘制完成事件观察者对象。              |
249| bundleName | string                                                       | 否   | 表示待监听的Ability的应用bundleName,不填表示注册监听所有应用ability首帧绘制完成事件。 |
250
251**错误码**:
252
253以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。
254
255| 错误码ID | 错误信息 |
256| ------- | -------- |
257| 201 | Permission denied. |
258| 202 | Not System App. Interface caller is not a system app. |
259| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
260| 16000050 | Internal error. |
261
262**示例:**
263
264```ts
265import { appManager } from '@kit.AbilityKit';
266import { BusinessError } from '@kit.BasicServicesKit';
267
268let abilityFirstFrameStateObserverForAll: appManager.AbilityFirstFrameStateObserver = {
269  onAbilityFirstFrameDrawn(abilityStateData: appManager.AbilityFirstFrameStateData) {
270    console.info("abilityFirstFrame: ", JSON.stringify(abilityStateData));
271  }
272};
273
274try {
275  appManager.on('abilityFirstFrameState', abilityFirstFrameStateObserverForAll);
276} catch (e) {
277  let code = (e as BusinessError).code;
278  let message = (e as BusinessError).message;
279  console.error(`[appManager] error: ${code}, ${message}`);
280}
281```
282
283## appManager.off('appForegroundState')<sup>11+</sup>
284
285off(type: 'appForegroundState', observer?: AppForegroundStateObserver): void
286
287取消注册应用启动和退出的观测器。
288
289**系统接口**:此接口为系统接口。
290
291**需要权限**:ohos.permission.RUNNING_STATE_OBSERVER
292
293**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
294
295**参数:**
296
297| 参数名 | 类型 | 必填 | 说明 |
298| -------- | -------- | -------- | -------- |
299| type | string | 是 | 调用接口类型,固定填'appForegroundState'字符串。|
300| observer | [AppForegroundStateObserver](js-apis-inner-application-appForegroundStateObserver-sys.md) | 否 | 取消注册的应用启动和退出观测器。|
301
302**错误码**:
303
304以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。
305
306| 错误码ID | 错误信息 |
307| ------- | -------- |
308| 201 | Permission denied. |
309| 202 | Not System App. Interface caller is not a system app. |
310| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
311| 16000050 | Internal error. |
312
313**示例:**
314
315```ts
316import { appManager } from '@kit.AbilityKit';
317import { BusinessError } from '@kit.BasicServicesKit';
318
319let observer_: appManager.AppForegroundStateObserver | undefined;
320// 1.注册应用启动和退出的监听器
321let observer: appManager.AppForegroundStateObserver = {
322  onAppStateChanged(appStateData: appManager.AppStateData) {
323    console.info(`[appManager] onAppStateChanged: ${JSON.stringify(appStateData)}`);
324  },
325};
326
327try {
328  appManager.on('appForegroundState', observer);
329  // 保存observer对象,用于注销
330  observer_ = observer;
331} catch (paramError) {
332  let code = (paramError as BusinessError).code;
333  let message = (paramError as BusinessError).message;
334  console.error(`[appManager] error: ${code}, ${message}`);
335}
336
337// 2.注销监听器
338try {
339  appManager.off('appForegroundState',  observer_);
340} catch (paramError) {
341  let code = (paramError as BusinessError).code;
342  let message = (paramError as BusinessError).message;
343  console.error(`[appManager] error: ${code}, ${message}`);
344}
345```
346
347## appManager.off('abilityFirstFrameState')<sup>12+</sup>
348
349off(type: 'abilityFirstFrameState', observer?: AbilityFirstFrameStateObserver): void
350
351取消注册监听Ability首帧绘制完成事件观察者对象。
352
353**系统接口**:此接口为系统接口。
354
355**需要权限**:ohos.permission.RUNNING_STATE_OBSERVER
356
357**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
358
359**参数:**
360
361| 参数名   | 类型                                                         | 必填 | 说明                                                         |
362| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
363| type     | string                                                       | 是   | 调用接口类型,固定填'abilityFirstFrameState'字符串。         |
364| observer | [AbilityFirstFrameStateObserver](js-apis-inner-application-abilityFirstFrameStateObserver-sys.md) | 否   | 表示待取消的Ability首帧绘制完成事件观察者对象,不填表示取消所有监听对象。 |
365
366**错误码**:
367
368以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。
369
370| 错误码ID | 错误信息 |
371| ------- | -------- |
372| 201 | Permission denied. |
373| 202 | Not System App. Interface caller is not a system app. |
374| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
375| 16000050 | Internal error. |
376
377**示例:**
378
379```ts
380import { appManager } from '@kit.AbilityKit';
381import { BusinessError } from '@kit.BasicServicesKit';
382
383let abilityFirstFrameStateObserverForAll: appManager.AbilityFirstFrameStateObserver = {
384  onAbilityFirstFrameDrawn(abilityStateData: appManager.AbilityFirstFrameStateData) {
385    console.info("abilityFirstFrame: ", JSON.stringify(abilityStateData));
386  }
387};
388
389try {
390  appManager.on('abilityFirstFrameState', abilityFirstFrameStateObserverForAll);
391} catch (e) {
392  let code = (e as BusinessError).code;
393  let message = (e as BusinessError).message;
394  console.error(`[appManager] error: ${code}, ${message}`);
395}
396
397try {
398  appManager.off('abilityFirstFrameState', abilityFirstFrameStateObserverForAll);
399} catch (e) {
400  let code = (e as BusinessError).code;
401  let message = (e as BusinessError).message;
402  console.error(`[appManager] error: ${code}, ${message}`);
403}
404```
405
406## appManager.getForegroundApplications
407
408getForegroundApplications(callback: AsyncCallback\<Array\<AppStateData>>): void
409
410获取当前所有前台应用的信息。该应用信息由[AppStateData](js-apis-inner-application-appStateData.md)定义。
411
412**需要权限**:ohos.permission.GET_RUNNING_INFO
413
414**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
415
416**系统接口**:此接口为系统接口。
417
418**参数:**
419
420| 参数名 | 类型 | 必填 | 说明 |
421| -------- | -------- | -------- | -------- |
422| callback | AsyncCallback\<Array\<[AppStateData](js-apis-inner-application-appStateData.md)>> | 是 | 以回调方式方式返回接口运行结果及应用状态数据数组,可进行错误处理或其他自定义处理。 |
423
424**错误码**:
425
426以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。
427
428| 错误码ID | 错误信息 |
429| ------- | -------- |
430| 201 | Permission denied. |
431| 202 | Not System App. Interface caller is not a system app. |
432| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
433| 16000050 | Internal error. |
434
435**示例:**
436
437```ts
438import { appManager } from '@kit.AbilityKit';
439import { BusinessError } from '@kit.BasicServicesKit';
440
441function getForegroundApplicationsCallback(err: BusinessError, data: Array<appManager.AppStateData>) {
442  if (err) {
443    console.error(`getForegroundApplicationsCallback fail, err: ${JSON.stringify(err)}`);
444  } else {
445    console.info(`getForegroundApplicationsCallback success, data: ${JSON.stringify(data)}`);
446  }
447}
448
449try {
450  appManager.getForegroundApplications(getForegroundApplicationsCallback);
451} catch (paramError) {
452  let code = (paramError as BusinessError).code;
453  let message = (paramError as BusinessError).message;
454  console.error(`[appManager] error: ${code}, ${message}`);
455}
456```
457
458## appManager.getForegroundApplications
459
460getForegroundApplications(): Promise\<Array\<AppStateData>>
461
462获取当前所有前台应用的信息。该应用信息由[AppStateData](js-apis-inner-application-appStateData.md)定义。
463
464**需要权限**:ohos.permission.GET_RUNNING_INFO
465
466**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
467
468**系统接口**:此接口为系统接口。
469
470**返回值:**
471
472| 类型 | 说明 |
473| -------- | -------- |
474| Promise\<Array\<[AppStateData](js-apis-inner-application-appStateData.md)>> | 返回前台进程应用程序的数组。 |
475
476**错误码**:
477
478以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。
479
480| 错误码ID | 错误信息 |
481| ------- | -------- |
482| 201 | Permission denied. |
483| 202 | Not System App. Interface caller is not a system app. |
484| 16000050 | Internal error. |
485
486**示例:**
487
488```ts
489import { appManager } from '@kit.AbilityKit';
490import { BusinessError } from '@kit.BasicServicesKit';
491
492appManager.getForegroundApplications().then((data) => {
493  console.info(`getForegroundApplications success, data: ${JSON.stringify(data)}`);
494}).catch((err: BusinessError) => {
495  console.error(`getForegroundApplications fail, err: ${JSON.stringify(err)}`);
496});
497```
498
499## appManager.killProcessWithAccount
500
501killProcessWithAccount(bundleName: string, accountId: number): Promise\<void\>
502
503终止account进程。使用Promise异步回调。
504
505> **说明:**
506>
507> 当accountId为当前用户时,不需要校验ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS权限。
508
509**需要权限**:ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS, ohos.permission.KILL_APP_PROCESSES or ohos.permission.CLEAN_BACKGROUND_PROCESSES
510
511**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
512
513**系统接口**:此接口为系统接口。
514
515**参数:**
516
517| 参数名 | 类型 | 必填 | 说明 |
518| -------- | -------- | -------- | -------- |
519| bundleName | string | 是 | Bundle名称。 |
520| accountId | number | 是 | 系统账号的账号ID,详情参考[getOsAccountLocalId](../apis-basic-services-kit/js-apis-osAccount.md#getosaccountlocalid9)。 |
521
522**返回值:**
523
524| 类型             | 说明              |
525| -------------- | --------------- |
526| Promise\<void> | Promise对象。无返回结果的Promise对象。 |
527
528**错误码**:
529
530以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。
531
532| 错误码ID | 错误信息 |
533| ------- | -------- |
534| 201 | Permission denied. |
535| 202 | Not System App. Interface caller is not a system app. |
536| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
537| 16000050 | Internal error. |
538
539**示例:**
540
541```ts
542import { appManager } from '@kit.AbilityKit';
543import { BusinessError } from '@kit.BasicServicesKit';
544
545let bundleName = 'bundleName';
546let accountId = 0;
547
548try {
549  appManager.killProcessWithAccount(bundleName, accountId).then(() => {
550    console.info('killProcessWithAccount success');
551  }).catch((err: BusinessError) => {
552    console.error(`killProcessWithAccount fail, err: ${JSON.stringify(err)}`);
553  });
554} catch (paramError) {
555  let code = (paramError as BusinessError).code;
556  let message = (paramError as BusinessError).message;
557  console.error(`[appManager] error: ${code}, ${message}`);
558}
559```
560
561## appManager.killProcessWithAccount<sup>14+</sup>
562
563killProcessWithAccount(bundleName: string, accountId: number, clearPageStack: boolean, appIndex?: number): Promise\<void\>
564
565终止account进程。使用Promise异步回调。
566
567> **说明:**
568>
569> 当accountId为当前用户时,不需要校验ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS权限。
570
571**需要权限**:ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS, ohos.permission.CLEAN_BACKGROUND_PROCESSES
572
573**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
574
575**系统接口**:此接口为系统接口。
576
577**参数:**
578
579| 参数名 | 类型 | 必填 | 说明 |
580| -------- | -------- | -------- | -------- |
581| bundleName | string | 是 | Bundle名称。 |
582| accountId | number | 是 | 系统账号的账号ID,详情参考[getOsAccountLocalId](../apis-basic-services-kit/js-apis-osAccount.md#getosaccountlocalid9)。 |
583| clearPageStack | boolean | 是 | 表示是否清除页面堆栈。true表示清除,false表示不清除。 |
584| appIndex | number | 否 | 应用分身ID。 |
585
586**返回值:**
587
588| 类型             | 说明              |
589| -------------- | --------------- |
590| Promise\<void> | Promise对象。无返回结果的Promise对象。 |
591
592**错误码**:
593
594以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。
595
596| 错误码ID | 错误信息 |
597| ------- | -------- |
598| 201 | Permission denied. |
599| 202 | Not System App. Interface caller is not a system app. |
600| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
601| 16000050 | Internal error. |
602
603**示例:**
604
605```ts
606import { appManager } from '@kit.AbilityKit';
607import { BusinessError } from '@kit.BasicServicesKit';
608
609let bundleName = 'bundleName';
610let accountId = 0;
611let isClearPageStack = false;
612let appIndex = 1;
613
614try {
615  appManager.killProcessWithAccount(bundleName, accountId, isClearPageStack, appIndex).then(() => {
616    console.info('killProcessWithAccount success');
617  }).catch((err: BusinessError) => {
618    console.error(`killProcessWithAccount fail, err: ${JSON.stringify(err)}`);
619  });
620} catch (paramError) {
621  let code = (paramError as BusinessError).code;
622  let message = (paramError as BusinessError).message;
623  console.error(`[appManager] error: ${code}, ${message}`);
624}
625```
626
627## appManager.killProcessWithAccount
628
629killProcessWithAccount(bundleName: string, accountId: number, callback: AsyncCallback\<void\>): void
630
631终止account进程。使用callback异步回调。
632
633> **说明:**
634>
635> 当accountId为当前用户时,不需要校验ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS权限。
636
637**需要权限**:ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS, ohos.permission.KILL_APP_PROCESSES or ohos.permission.CLEAN_BACKGROUND_PROCESSES
638
639**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
640
641**系统接口**:此接口为系统接口。
642
643**参数:**
644
645  | 参数名 | 类型 | 必填 | 说明 |
646  | -------- | -------- | -------- | -------- |
647  | bundleName | string | 是 | 应用Bundle名称。 |
648  | accountId | number | 是 | 系统账号的账号ID,详情参考[getOsAccountLocalId](../apis-basic-services-kit/js-apis-osAccount.md#getosaccountlocalid9)。 |
649  | callback | AsyncCallback\<void\> | 是 | 以回调方式返回接口运行结果,可进行错误处理或其他自定义处理。 |
650
651**错误码**:
652
653以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。
654
655| 错误码ID | 错误信息 |
656| ------- | -------- |
657| 201 | Permission denied. |
658| 202 | Not System App. Interface caller is not a system app. |
659| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
660| 16000050 | Internal error. |
661
662**示例:**
663
664```ts
665import { appManager } from '@kit.AbilityKit';
666import { BusinessError } from '@kit.BasicServicesKit';
667
668let bundleName = 'bundleName';
669let accountId = 0;
670
671function killProcessWithAccountCallback(err: BusinessError) {
672  if (err) {
673    console.error(`killProcessWithAccountCallback fail, err: ${JSON.stringify(err)}`);
674  } else {
675    console.info('killProcessWithAccountCallback success.');
676  }
677}
678
679appManager.killProcessWithAccount(bundleName, accountId, killProcessWithAccountCallback);
680```
681
682## appManager.killProcessesByBundleName
683
684killProcessesByBundleName(bundleName: string, callback: AsyncCallback\<void>)
685
686通过Bundle名称终止进程。
687
688**需要权限**:ohos.permission.KILL_APP_PROCESSES or ohos.permission.CLEAN_BACKGROUND_PROCESSES
689
690**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
691
692**系统接口**:此接口为系统接口。
693
694**参数:**
695
696| 参数名 | 类型 | 必填 | 说明 |
697| -------- | -------- | -------- | -------- |
698| bundleName | string | 是 | 表示Bundle名称。 |
699| callback | AsyncCallback\<void> | 是 | 以回调方式返回接口运行结果,可进行错误处理或其他自定义处理。 |
700
701**错误码**:
702
703以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。
704
705| 错误码ID | 错误信息 |
706| ------- | -------- |
707| 201 | Permission denied. |
708| 202 | Not System App. Interface caller is not a system app. |
709| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
710| 16000050 | Internal error. |
711
712**示例:**
713
714```ts
715import { appManager } from '@kit.AbilityKit';
716import { BusinessError } from '@kit.BasicServicesKit';
717
718let bundleName = 'bundleName';
719
720function killProcessesByBundleNameCallback(err: BusinessError) {
721  if (err) {
722    console.error(`killProcessesByBundleNameCallback fail, err: ${JSON.stringify(err)}`);
723  } else {
724    console.info('killProcessesByBundleNameCallback success.');
725  }
726}
727
728try {
729  appManager.killProcessesByBundleName(bundleName, killProcessesByBundleNameCallback);
730} catch (paramError) {
731  let code = (paramError as BusinessError).code;
732  let message = (paramError as BusinessError).message;
733  console.error(`[appManager] error: ${code}, ${message}`);
734}
735```
736
737## appManager.killProcessesByBundleName
738
739killProcessesByBundleName(bundleName: string): Promise\<void>
740
741通过Bundle名称终止进程。
742
743**需要权限**:ohos.permission.KILL_APP_PROCESSES or ohos.permission.CLEAN_BACKGROUND_PROCESSES
744
745**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
746
747**系统接口**:此接口为系统接口。
748
749**参数:**
750
751| 参数名 | 类型 | 必填 | 说明 |
752| -------- | -------- | -------- | -------- |
753| bundleName | string | 是 | 表示Bundle名称。 |
754
755**返回值:**
756
757| 类型 | 说明 |
758| -------- | -------- |
759| Promise\<void> | Promise对象。无返回结果的Promise对象。 |
760
761**错误码**:
762
763以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。
764
765| 错误码ID | 错误信息 |
766| ------- | -------- |
767| 201 | Permission denied. |
768| 202 | Not System App. Interface caller is not a system app. |
769| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
770| 16000050 | Internal error. |
771
772**示例:**
773
774```ts
775import { appManager } from '@kit.AbilityKit';
776import { BusinessError } from '@kit.BasicServicesKit';
777
778let bundleName = 'bundleName';
779
780try {
781  appManager.killProcessesByBundleName(bundleName).then((data) => {
782    console.info('killProcessesByBundleName success.');
783  }).catch((err: BusinessError) => {
784    console.error(`killProcessesByBundleName fail, err: ${JSON.stringify(err)}`);
785  });
786} catch (paramError) {
787  let code = (paramError as BusinessError).code;
788  let message = (paramError as BusinessError).message;
789  console.error(`[appManager] error: ${code}, ${message}`);
790}
791```
792
793## appManager.clearUpApplicationData
794
795clearUpApplicationData(bundleName: string, callback: AsyncCallback\<void>)
796
797通过Bundle名称清除应用数据。
798
799**需要权限**:ohos.permission.CLEAN_APPLICATION_DATA
800
801**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
802
803**系统接口**:此接口为系统接口。
804
805**参数:**
806
807| 参数名 | 类型 | 必填 | 说明 |
808| -------- | -------- | -------- | -------- |
809| bundleName | string | 是 | Bundle名称。 |
810| callback | AsyncCallback\<void> | 是 | 以回调方式返回接口运行结果,可进行错误处理或其他自定义处理。 |
811
812**错误码**:
813
814以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。
815
816| 错误码ID | 错误信息 |
817| ------- | -------- |
818| 201 | Permission denied. |
819| 202 | Not System App. Interface caller is not a system app. |
820| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
821| 16000050 | Internal error. |
822
823**示例:**
824
825```ts
826import { appManager } from '@kit.AbilityKit';
827import { BusinessError } from '@kit.BasicServicesKit';
828
829let bundleName = 'bundleName';
830
831function clearUpApplicationDataCallback(err: BusinessError) {
832  if (err) {
833    console.error(`clearUpApplicationDataCallback fail, err: ${JSON.stringify(err)}`);
834  } else {
835    console.info('clearUpApplicationDataCallback success.');
836  }
837}
838
839try {
840  appManager.clearUpApplicationData(bundleName, clearUpApplicationDataCallback);
841} catch (paramError) {
842  let code = (paramError as BusinessError).code;
843  let message = (paramError as BusinessError).message;
844  console.error(`[appManager] error: ${code}, ${message}`);
845}
846```
847
848## appManager.clearUpApplicationData
849
850clearUpApplicationData(bundleName: string): Promise\<void>
851
852通过Bundle名称清除应用数据。
853
854**需要权限**:ohos.permission.CLEAN_APPLICATION_DATA
855
856**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
857
858**系统接口**:此接口为系统接口。
859
860**参数:**
861
862| 参数名 | 类型 | 必填 | 说明 |
863| -------- | -------- | -------- | -------- |
864| bundleName | string | 是 | 表示Bundle名称。 |
865
866**返回值:**
867
868| 类型 | 说明 |
869| -------- | -------- |
870| Promise\<void> | 以Promise方式返回接口运行结果,可进行错误处理或其他自定义处理。 |
871
872**错误码**:
873
874以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。
875
876| 错误码ID | 错误信息 |
877| ------- | -------- |
878| 201 | Permission denied. |
879| 202 | Not System App. Interface caller is not a system app. |
880| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
881| 16000050 | Internal error. |
882
883**示例:**
884
885```ts
886import { appManager } from '@kit.AbilityKit';
887import { BusinessError } from '@kit.BasicServicesKit';
888
889let bundleName = 'bundleName';
890
891try {
892  appManager.clearUpApplicationData(bundleName).then((data) => {
893    console.info('clearUpApplicationData success.');
894  }).catch((err: BusinessError) => {
895    console.error(`clearUpApplicationData fail, err: ${JSON.stringify(err)}`);
896  });
897} catch (paramError) {
898  let code = (paramError as BusinessError).code;
899  let message = (paramError as BusinessError).message;
900  console.error(`[appManager] error: ${code}, ${message}`);
901}
902```
903
904## appManager.getProcessMemoryByPid<sup>10+</sup>
905
906getProcessMemoryByPid(pid: number, callback: AsyncCallback\<number>): void
907
908通过pid查询对应进程占用的内存大小。
909
910**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
911
912**系统接口**:此接口为系统接口。
913
914**参数:**
915
916| 参数名 | 类型 | 必填 | 说明 |
917| -------- | -------- | -------- | -------- |
918| pid | number | 是 | 表示进程id,详情参考[getRunningProcessInfoByBundleName](#appmanagergetrunningprocessinfobybundlename10)。 |
919| callback | AsyncCallback\<number> | 是 | 以回调方式返回接口运行结果及进程占用的内存大小(单位KB),可进行错误处理或其他自定义处理。 |
920
921**错误码**:
922
923以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。
924
925| 错误码ID | 错误信息 |
926| ------- | -------- |
927| 202 | Not System App. Interface caller is not a system app. |
928| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
929| 16000050 | Internal error. |
930
931**示例:**
932
933```ts
934import { appManager } from '@kit.AbilityKit';
935import { BusinessError } from '@kit.BasicServicesKit';
936
937let pid = 0;
938function getProcessMemoryByPidCallback(err: BusinessError, data: number) {
939  if (err) {
940    console.error(`getProcessMemoryByPidCallback fail, err: ${JSON.stringify(err)}`);
941  } else {
942    console.info('getProcessMemoryByPidCallback success.');
943  }
944}
945
946try {
947  appManager.getProcessMemoryByPid(pid, getProcessMemoryByPidCallback);
948} catch (paramError) {
949  let code = (paramError as BusinessError).code;
950  let message = (paramError as BusinessError).message;
951  console.error(`[appManager] error: ${code}, ${message}`);
952}
953```
954
955## appManager.getProcessMemoryByPid<sup>10+</sup>
956
957getProcessMemoryByPid(pid: number): Promise\<number>
958
959通过pid查询对应进程占用的内存大小。
960
961**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
962
963**系统接口**:此接口为系统接口。
964
965**参数:**
966
967| 参数名 | 类型 | 必填 | 说明 |
968| -------- | -------- | -------- | -------- |
969| pid | number | 是 | 表示进程id,详情参考[getRunningProcessInfoByBundleName](#appmanagergetrunningprocessinfobybundlename10)。  |
970
971**返回值:**
972
973| 类型 | 说明 |
974| -------- | -------- |
975| Promise\<number> | 以Promise方式返回接口运行结果及进程占用的内存大小(单位KB),可进行错误处理或其他自定义处理。 |
976
977**错误码**:
978
979以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。
980
981| 错误码ID | 错误信息 |
982| ------- | -------- |
983| 202 | Not System App. Interface caller is not a system app. |
984| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
985| 16000050 | Internal error. |
986
987**示例:**
988
989```ts
990import { appManager } from '@kit.AbilityKit';
991import { BusinessError } from '@kit.BasicServicesKit';
992
993let pid = 0;
994
995try {
996  appManager.getProcessMemoryByPid(pid).then((data) => {
997    console.info('getProcessMemoryByPid success.');
998  }).catch((err: BusinessError) => {
999    console.error(`getProcessMemoryByPid fail, err: ${JSON.stringify(err)}`);
1000  });
1001} catch (paramError) {
1002  let code = (paramError as BusinessError).code;
1003  let message = (paramError as BusinessError).message;
1004  console.error(`[appManager] error: ${code}, ${message}`);
1005}
1006```
1007
1008## appManager.getRunningProcessInfoByBundleName<sup>10+</sup>
1009
1010getRunningProcessInfoByBundleName(bundleName: string, callback: AsyncCallback\<Array\<ProcessInformation>>): void
1011
1012通过bundleName获取有关运行进程的信息。
1013
1014**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
1015
1016**系统接口**:此接口为系统接口。
1017
1018**参数:**
1019
1020| 参数名 | 类型 | 必填 | 说明 |
1021| -------- | -------- | -------- | -------- |
1022| bundleName | string | 是 | 表示Bundle名称。 |
1023| callback | AsyncCallback\<Array\<[ProcessInformation](js-apis-inner-application-processInformation.md)>> | 是 | 以回调方式返回接口运行结果及有关运行进程的信息,可进行错误处理或其他自定义处理。 |
1024
1025**错误码**:
1026
1027以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。
1028
1029| 错误码ID | 错误信息 |
1030| ------- | -------- |
1031| 202 | Not System App. Interface caller is not a system app. |
1032| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
1033| 16000050 | Internal error. |
1034
1035**示例:**
1036
1037```ts
1038import { appManager } from '@kit.AbilityKit';
1039import { BusinessError } from '@kit.BasicServicesKit';
1040
1041let bundleName = "bundleName";
1042function getRunningProcessInfoByBundleNameCallback(err: BusinessError, data: Array<appManager.ProcessInformation>) {
1043  if (err) {
1044    console.error(`getRunningProcessInfoByBundleNameCallback fail, err: ${JSON.stringify(err)}`);
1045  } else {
1046    console.info('getRunningProcessInfoByBundleNameCallback success.');
1047  }
1048}
1049
1050try {
1051  appManager.getRunningProcessInfoByBundleName(bundleName, getRunningProcessInfoByBundleNameCallback);
1052} catch (paramError) {
1053  let code = (paramError as BusinessError).code;
1054  let message = (paramError as BusinessError).message;
1055  console.error(`[appManager] error: ${code}, ${message}`);
1056}
1057```
1058
1059## appManager.getRunningProcessInfoByBundleName<sup>10+</sup>
1060
1061getRunningProcessInfoByBundleName(bundleName: string): Promise\<Array\<ProcessInformation>>
1062
1063通过bundleName获取有关运行进程的信息。
1064
1065**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
1066
1067**系统接口**:此接口为系统接口。
1068
1069**参数:**
1070
1071| 参数名 | 类型 | 必填 | 说明 |
1072| -------- | -------- | -------- | -------- |
1073| bundleName | string | 是 | 表示Bundle名称。 |
1074
1075**返回值:**
1076
1077| 类型 | 说明 |
1078| -------- | -------- |
1079| Promise\<Array\<[ProcessInformation](js-apis-inner-application-processInformation.md)>> | 以Promise方式返回接口运行结果及有关运行进程的信息,可进行错误处理或其他自定义处理。 |
1080
1081**错误码**:
1082
1083以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。
1084
1085| 错误码ID | 错误信息 |
1086| ------- | -------- |
1087| 202 | Not System App. Interface caller is not a system app. |
1088| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
1089| 16000050 | Internal error. |
1090
1091**示例:**
1092
1093```ts
1094import { appManager } from '@kit.AbilityKit';
1095import { BusinessError } from '@kit.BasicServicesKit';
1096
1097let bundleName = "bundleName";
1098
1099try {
1100  appManager.getRunningProcessInfoByBundleName(bundleName).then((data) => {
1101    console.info('getRunningProcessInfoByBundleName success.');
1102  }).catch((err: BusinessError) => {
1103    console.error(`getRunningProcessInfoByBundleName fail, err: ${JSON.stringify(err)}`);
1104  });
1105} catch (paramError) {
1106  let code = (paramError as BusinessError).code;
1107  let message = (paramError as BusinessError).message;
1108  console.error(`[appManager] error: ${code}, ${message}`);
1109}
1110```
1111
1112## appManager.getRunningProcessInfoByBundleName<sup>10+</sup>
1113
1114getRunningProcessInfoByBundleName(bundleName: string, userId: number, callback: AsyncCallback\<Array\<ProcessInformation>>): void
1115
1116通过bundleName和userId获取有关运行进程的信息。
1117
1118**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
1119
1120**系统接口**:此接口为系统接口。
1121
1122**参数:**
1123
1124| 参数名 | 类型 | 必填 | 说明 |
1125| -------- | -------- | -------- | -------- |
1126| bundleName | string | 是 | 表示Bundle名称。 |
1127| userId | number | 是 | 表示用户Id。 |
1128| callback | AsyncCallback\<Array\<[ProcessInformation](js-apis-inner-application-processInformation.md)>> | 是 | 以回调方式返回接口运行结果及有关运行进程的信息,可进行错误处理或其他自定义处理。 |
1129
1130**错误码**:
1131
1132以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。
1133
1134| 错误码ID | 错误信息 |
1135| ------- | -------- |
1136| 202 | Not System App. Interface caller is not a system app. |
1137| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
1138| 16000050 | Internal error. |
1139
1140**示例:**
1141
1142```ts
1143import { appManager } from '@kit.AbilityKit';
1144import { BusinessError } from '@kit.BasicServicesKit';
1145
1146let bundleName = "bundleName";
1147let userId = 0;
1148function getRunningProcessInfoByBundleNameCallback(err: BusinessError, data: Array<appManager.ProcessInformation>) {
1149  if (err) {
1150    console.error(`getRunningProcessInfoByBundleNameCallback fail, err: ${JSON.stringify(err)}`);
1151  } else {
1152    console.info('getRunningProcessInfoByBundleNameCallback success.');
1153  }
1154}
1155
1156try {
1157  appManager.getRunningProcessInfoByBundleName(bundleName, userId, getRunningProcessInfoByBundleNameCallback);
1158} catch (paramError) {
1159  let code = (paramError as BusinessError).code;
1160  let message = (paramError as BusinessError).message;
1161  console.error(`[appManager] error: ${code}, ${message}`);
1162}
1163```
1164
1165## appManager.getRunningProcessInfoByBundleName<sup>10+</sup>
1166
1167getRunningProcessInfoByBundleName(bundleName: string, userId: number): Promise\<Array\<ProcessInformation>>
1168
1169通过bundleName和userId获取有关运行进程的信息。
1170
1171**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
1172
1173**系统接口**:此接口为系统接口。
1174
1175**参数:**
1176
1177| 参数名 | 类型 | 必填 | 说明 |
1178| -------- | -------- | -------- | -------- |
1179| bundleName | string | 是 | 表示Bundle名称。 |
1180| userId | number | 是 | 表示用户Id。 |
1181
1182**返回值:**
1183
1184| 类型 | 说明 |
1185| -------- | -------- |
1186| Promise\<Array\<[ProcessInformation](js-apis-inner-application-processInformation.md)>> | 以Promise方式返回接口运行结果及有关运行进程的信息,可进行错误处理或其他自定义处理。 |
1187
1188**错误码**:
1189
1190以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。
1191
1192| 错误码ID | 错误信息 |
1193| ------- | -------- |
1194| 202 | Not System App. Interface caller is not a system app. |
1195| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
1196| 16000050 | Internal error. |
1197
1198**示例:**
1199
1200```ts
1201import { appManager } from '@kit.AbilityKit';
1202import { BusinessError } from '@kit.BasicServicesKit';
1203
1204let bundleName = "bundleName";
1205let userId = 0;
1206
1207try {
1208  appManager.getRunningProcessInfoByBundleName(bundleName, userId).then((data) => {
1209    console.info('getRunningProcessInfoByBundleName success.');
1210  }).catch((err: BusinessError) => {
1211    console.error(`getRunningProcessInfoByBundleName fail, err: ${JSON.stringify(err)}`);
1212  });
1213} catch (paramError) {
1214  let code = (paramError as BusinessError).code;
1215  let message = (paramError as BusinessError).message;
1216  console.error(`[appManager] error: ${code}, ${message}`);
1217}
1218```
1219
1220## appManager.isApplicationRunning<sup>11+</sup>
1221
1222isApplicationRunning(bundleName: string): Promise\<boolean>
1223
1224查询单个应用是否正在运行。使用Promise异步回调。
1225
1226**系统接口**:此接口为系统接口。
1227
1228**需要权限**:ohos.permission.GET_RUNNING_INFO
1229
1230**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
1231
1232**参数**:
1233
1234| 参数名        | 类型                                       | 必填   | 说明             |
1235| --------- | ---------------------------------------- | ---- | -------------- |
1236| bundleName    | string   | 是    | 表示要查询的应用的包名。 |
1237
1238**返回值:**
1239
1240| 类型 | 说明 |
1241| -------- | -------- |
1242| Promise\<boolean> | Promise对象。返回true表示查询的应用正在运行,返回false表示查询的应用没有运行。 |
1243
1244**错误码**:
1245
1246以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。
1247
1248| 错误码ID | 错误信息 |
1249| ------- | -------- |
1250| 201 | Permission denied. |
1251| 202 | Not System App. Interface caller is not a system app. |
1252| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
1253| 16000050 | Internal error. |
1254
1255**示例:**
1256
1257```ts
1258import { appManager } from '@kit.AbilityKit';
1259import { BusinessError } from '@kit.BasicServicesKit';
1260
1261let bundleName = "com.example.myapplication";
1262
1263appManager.isApplicationRunning(bundleName).then((data) => {
1264  console.info(`The application running is: ${JSON.stringify(data)}`);
1265}).catch((error: BusinessError) => {
1266  console.error(`error: ${JSON.stringify(error)}`);
1267});
1268```
1269
1270## appManager.isApplicationRunning<sup>11+</sup>
1271
1272isApplicationRunning(bundleName: string, callback: AsyncCallback\<boolean>): void
1273
1274查询单个应用是否正在运行。使用callback异步回调。
1275
1276**系统接口**:此接口为系统接口。
1277
1278**需要权限**:ohos.permission.GET_RUNNING_INFO
1279
1280**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
1281
1282**参数**:
1283
1284| 参数名        | 类型                                       | 必填   | 说明             |
1285| --------- | ---------------------------------------- | ---- | -------------- |
1286| bundleName    | string   | 是    | 表示要查询的共享库包名。 |
1287| callback | AsyncCallback&lt;boolean&gt; | 是 | 回调函数。返回true表示查询的应用正在运行,返回false表示查询的应用没有运行。 |
1288
1289**错误码**:
1290
1291以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。
1292
1293| 错误码ID | 错误信息 |
1294| ------- | -------- |
1295| 201 | Permission denied. |
1296| 202 | Not System App. Interface caller is not a system app. |
1297| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
1298| 16000050 | Internal error. |
1299
1300**示例:**
1301
1302```ts
1303import { appManager } from '@kit.AbilityKit';
1304import { BusinessError } from '@kit.BasicServicesKit';
1305
1306let bundleName = "com.example.myapplication";
1307
1308try {
1309  appManager.isApplicationRunning(bundleName, (err, data) => {
1310    if (err) {
1311      console.error(`err: ${JSON.stringify(err)}`);
1312    } else {
1313      console.info(`The application running is: ${JSON.stringify(data)}`);
1314    }
1315  });
1316} catch (paramError) {
1317  let code = (paramError as BusinessError).code;
1318  let message = (paramError as BusinessError).message;
1319  console.error(`[appManager] error: ${code}, ${message}`);
1320}
1321```
1322
1323## ApplicationState
1324
1325应用状态,该类型为枚举,可配合[AbilityStateData](js-apis-inner-application-abilityStateData.md)返回相应的应用状态。
1326
1327**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
1328
1329**系统接口**:此接口为系统接口。
1330
1331| 名称                 | 值  | 说明                               |
1332| -------------------- | --- | --------------------------------- |
1333| STATE_CREATE    | 0   |   应用处于创建状态。         |
1334| STATE_FOREGROUND          | 2   |      应用处于前台状态。            |
1335| STATE_ACTIVE  | 3   |     应用处于获焦状态。     |
1336| STATE_BACKGROUND        | 4   |    应用处于后台不可见状态。           |
1337| STATE_DESTROY        | 5   |    应用处于销毁状态。       |
1338
1339
1340## appManager.getRunningProcessInformationByBundleType<sup>12+</sup>
1341
1342getRunningProcessInformationByBundleType(bundleType: bundleManager.BundleType): Promise\<Array\<ProcessInformation>>
1343
1344根据包类型获取当前运行进程的有关信息。使用Promise异步回调。
1345
1346**系统接口**:此接口为系统接口。
1347
1348**需要权限**:ohos.permission.GET_RUNNING_INFO
1349
1350**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
1351
1352**参数**:
1353
1354| 参数名        | 类型                                       | 必填   | 说明             |
1355| --------- | ---------------------------------------- | ---- | -------------- |
1356| bundleType    | [bundleManager.BundleType](js-apis-bundleManager.md#bundletype)  | 是    | 表示要查询的包类型。 |
1357
1358**返回值:**
1359
1360| 类型 | 说明 |
1361| -------- | -------- |
1362| Promise\<Array\<[ProcessInformation](js-apis-inner-application-processInformation.md)>> | Promise对象,返回特定包类型的运行进程的信息。 |
1363
1364**错误码**:
1365以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。
1366
1367| 错误码ID | 错误信息 |
1368| ------- | -------- |
1369| 201 | Permission denied. |
1370| 202 | Not system application. |
1371| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
1372| 16000050 | Internal error. |
1373
1374
1375**示例:**
1376
1377```ts
1378import { appManager, bundleManager } from '@kit.AbilityKit';
1379import { BusinessError } from '@kit.BasicServicesKit';
1380
1381try {
1382  appManager.getRunningProcessInformationByBundleType(bundleManager.BundleType.ATOMIC_SERVICE)
1383    .then((data) => {
1384      console.info(`The running process information is: ${JSON.stringify(data)}`);
1385    }).catch((error: BusinessError) => {
1386    console.error(`error: ${JSON.stringify(error)}`);
1387  });
1388} catch (paramError) {
1389  let code = (paramError as BusinessError).code;
1390  let message = (paramError as BusinessError).message;
1391  console.error(`[appManager] error: ${code}, ${message}`);
1392}
1393```
1394
1395## appManager.preloadApplication<sup>12+</sup>
1396
1397preloadApplication(bundleName: string, userId: number, mode: PreloadMode, appIndex?: number): Promise\<void>
1398
1399预加载应用进程。接口返回成功并不代表预加载成功,具体结果以目标应用进程是否创建成功为准。使用Promise异步回调。
1400
1401**需要权限**:ohos.permission.PRELOAD_APPLICATION
1402
1403**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
1404
1405**系统接口**:此接口为系统接口。
1406
1407**模型约束**:此接口仅可在Stage模型下使用。
1408
1409**参数:**
1410
1411| 参数名 | 类型 | 必填 | 说明 |
1412| -------- | -------- | -------- | -------- |
1413| bundleName | string | 是 | 预加载的应用包名。 |
1414| userId | number | 是 | 预加载的用户Id。 |
1415| mode | [PreloadMode](#appmanagerpreloadmode12) | 是 | 预加载模式。 |
1416| appIndex | number | 否 | 预加载应用分身的appIndex。 |
1417
1418**返回值:**
1419
1420| 类型           | 说明              |
1421| -------------- | ---------------- |
1422| Promise\<void> | Promise对象。无返回结果的Promise对象。 |
1423
1424**错误码**:
1425
1426  以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。
1427
1428| 错误码ID | 错误信息 |
1429| ------- | -------- |
1430| 201 | The application does not have permission to call the interface. |
1431| 202 | Not system application. |
1432| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types; 3.Parameter verification failed. |
1433| 16000050 | Internal error. |
1434| 16300005 | The target bundle does not exist. |
1435
1436**示例:**
1437
1438```ts
1439import { appManager } from '@kit.AbilityKit';
1440import { BusinessError } from '@kit.BasicServicesKit';
1441import { hilog } from '@kit.PerformanceAnalysisKit';
1442
1443try {
1444  let bundleName = "ohos.samples.etsclock";
1445  let userId = 100;
1446  let mode = appManager.PreloadMode.PRESS_DOWN;
1447  let appIndex = 0;
1448  appManager.preloadApplication(bundleName, userId, mode, appIndex)
1449    .then(() => {
1450      hilog.info(0x0000, 'testTag', `preloadApplication success`);
1451    })
1452    .catch((err: BusinessError) => {
1453      hilog.error(0x0000, 'testTag', `preloadApplication error, code: ${err.code}, msg:${err.message}`);
1454    })
1455} catch (err) {
1456  hilog.error(0x0000, 'testTag', `preloadApplication error, code: ${(err as BusinessError).code}, msg:${(err as BusinessError).message}`);
1457}
1458```
1459
1460## appManager.getRunningMultiAppInfo<sup>12+</sup>
1461
1462getRunningMultiAppInfo(bundleName: string): Promise\<RunningMultiAppInfo>
1463
1464根据应用包名获取系统中运行态的应用多开(即在一个设备上运行多个相同的应用)的相关信息,使用Promise异步回调。
1465
1466**需要权限**:ohos.permission.GET_RUNNING_INFO
1467
1468**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
1469
1470**系统接口**:此接口为系统接口。
1471
1472**模型约束**:此接口仅可在Stage模型下使用。
1473
1474**参数:**
1475
1476| 参数名 | 类型 | 必填 | 说明 |
1477| -------- | -------- | -------- | -------- |
1478| bundleName | string | 是 | 查询的应用包名。 |
1479
1480**返回值:**
1481
1482| 类型           | 说明              |
1483| -------------- | ---------------- |
1484| Promise\<[RunningMultiAppInfo](js-apis-inner-application-runningMultiAppInfo-sys.md)> | Promise对象。返回特定包名的运行态应用多开信息。 |
1485
1486**错误码**:
1487
1488  以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。
1489
1490| 错误码ID | 错误信息 |
1491| ------- | -------- |
1492| 201 | The application does not have permission to call the interface. |
1493| 202 | Not system application. |
1494| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types; 3.Parameter verification failed. |
1495| 16000072 | App clone or multi-instance is not supported. |
1496| 18500001 | The bundle does not exist or no patch has been applied. |
1497
1498**示例:**
1499
1500```ts
1501import { appManager } from '@kit.AbilityKit';
1502import { hilog } from '@kit.PerformanceAnalysisKit';
1503import { BusinessError } from '@kit.BasicServicesKit';
1504
1505try {
1506  let bundleName = "ohos.samples.etsclock";
1507  appManager.getRunningMultiAppInfo(bundleName).then((info: appManager.RunningMultiAppInfo) => {
1508      hilog.info(0x0000, 'testTag', `getRunningMultiAppInfo success`);
1509    }).catch((err: BusinessError) => {
1510      hilog.error(0x0000, 'testTag', `getRunningMultiAppInfo error, code: ${err.code}, msg:${err.message}`);
1511    })
1512} catch (err) {
1513  hilog.error(0x0000, 'testTag', `getRunningMultiAppInfo error, code: ${err.code}, msg:${err.message}`);
1514}
1515```
1516
1517## appManager.terminateMission<sup>13+</sup>
1518
1519terminateMission(missionId: number): Promise\<void>
1520
1521关闭指定的任务。使用Promise异步回调。
1522
1523**需要权限**:ohos.permission.KILL_APP_PROCESSES
1524
1525**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
1526
1527**系统接口**:此接口为系统接口。
1528
1529**参数:**
1530
1531| 参数名 | 类型 | 必填 | 说明 |
1532| -------- | -------- | -------- | -------- |
1533| missionId | number | 是 | 任务ID,可通过[getMissionInfos](js-apis-app-ability-missionManager-sys.md#missionmanagergetmissioninfos)获取。 |
1534
1535**返回值:**
1536
1537| 类型 | 说明 |
1538| -------- | -------- |
1539| Promise\<void> | Promise对象。无返回结果的Promise对象。 |
1540
1541**错误码**:
1542
1543以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。
1544
1545| 错误码ID | 错误信息 |
1546| ------- | -------- |
1547| 201 | Permission denied. |
1548| 202 | Not System App. Interface caller is not a system app. |
1549| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
1550| 16000050 | Internal error. |
1551
1552**示例:**
1553```ts
1554import { appManager } from '@kit.AbilityKit';
1555import { BusinessError } from '@kit.BasicServicesKit';
1556
1557@Entry
1558@Component
1559struct Index {
1560  build() {
1561    Button('start link', { type: ButtonType.Capsule, stateEffect: true })
1562      .width('87%')
1563      .height('5%')
1564      .margin({ bottom: '12vp' })
1565      .onClick(() => {
1566        let missionId: number = 0;
1567        try {
1568          appManager.terminateMission(missionId).then(()=>{
1569              console.info('terminateMission success.');
1570            }).catch((err: BusinessError)=>{
1571              console.error('terminateMission failed. err: ' + JSON.stringify(err));
1572            })
1573        } catch (paramError) {
1574          let code = (paramError as BusinessError).code;
1575          let message = (paramError as BusinessError).message;
1576          console.error(`[appManager] error: ${code}, ${message}`);
1577        }
1578      })
1579  }
1580}
1581```
1582
1583## appManager.getSupportedProcessCachePids<sup>14+</sup>
1584
1585getSupportedProcessCachePids(bundleName : string): Promise\<Array\<number>>
1586
1587查询当前应用中支持缓存后快速启动的进程PID。
1588
1589> **说明:**
1590>
1591> 本接口仅支持获取调用者所在系统账号下的进程PID。
1592
1593**需要权限**:ohos.permission.GET_RUNNING_INFO
1594
1595**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
1596
1597**系统接口**:此接口为系统接口。
1598
1599**模型约束**:此接口仅可在Stage模型下使用。
1600
1601**参数:**
1602
1603| 参数名 | 类型 | 必填 | 说明 |
1604| -------- | -------- | -------- | -------- |
1605| bundleName    | string   | 是    | 表示要查询的应用包名。 |
1606
1607**返回值:**
1608
1609| 类型 | 说明 |
1610| -------- | -------- |
1611| Promise\<Array\<number>> | Promise对象。返回一个数组,包含当前应用中支持缓存后快速启动的所有进程PID。 |
1612
1613**错误码**:
1614
1615以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。
1616
1617| 错误码ID | 错误信息 |
1618| ------- | -------- |
1619| 201 | Permission denied. |
1620| 202 | Not system application. |
1621| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
1622| 801 | Capability not supported. |
1623| 16000050 | Internal error. |
1624
1625**示例:**
1626
1627```ts
1628import { appManager } from '@kit.AbilityKit';
1629import { hilog } from '@kit.PerformanceAnalysisKit';
1630import { BusinessError } from '@kit.BasicServicesKit';
1631
1632try {
1633  let bundleName = "ohos.samples.processcache";
1634  appManager.getSupportedProcessCachePids(bundleName).then((pids: Array<number>) => {
1635      hilog.info(0x0000, 'testTag', `pids: ${JSON.stringify(pids)}`);
1636    }).catch((err: BusinessError) => {
1637      hilog.error(0x0000, 'testTag', `get pids error, code: ${err.code}, msg:${err.message}`);
1638    })
1639} catch (err) {
1640  hilog.error(0x0000, 'testTag', `get pids error, code: ${err.code}, msg:${err.message}`);
1641}
1642```
1643
1644## appManager.clearUpAppData<sup>13+</sup>
1645
1646clearUpAppData(bundleName: string, appCloneIndex?: number): Promise\<void>
1647
1648根据Bundle名称和应用分身索引,清除指定应用的数据。
1649
1650**需要权限**:ohos.permission.CLEAN_APPLICATION_DATA
1651
1652**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
1653
1654**系统接口**:此接口为系统接口。
1655
1656**参数:**
1657
1658| 参数名 | 类型 | 必填 | 说明 |
1659| -------- | -------- | -------- | -------- |
1660| bundleName | string | 是 | 表示Bundle名称。 |
1661| appCloneIndex | number | 否 | 表示应用分身索引。 |
1662
1663**返回值:**
1664
1665| 类型 | 说明 |
1666| -------- | -------- |
1667| Promise\<void> | Promise对象。无返回结果的Promise对象。 |
1668
1669**错误码**:
1670
1671以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。
1672
1673| 错误码ID | 错误信息 |
1674| ------- | -------- |
1675| 201 | Permission denied. |
1676| 202 | Not System App. Interface caller is not a system app. |
1677| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
1678| 16000050 | Internal error. |
1679| 16000073 | The app clone index is invalid. |
1680
1681**示例:**
1682
1683```ts
1684import { appManager } from '@kit.AbilityKit';
1685import { BusinessError } from '@kit.BasicServicesKit';
1686
1687let bundleName: string = 'com.ohos.demo';
1688let appCloneIndex: number = 0;
1689
1690try {
1691  appManager.clearUpAppData(bundleName, appCloneIndex).then(() => {
1692    console.info(`clearUpAppData success.`);
1693  }).catch((err: BusinessError) => {
1694    console.error(`clearUpAppData fail, err: ${JSON.stringify(err)}`);
1695  });
1696} catch (paramError) {
1697  let code = (paramError as BusinessError).code;
1698  let message = (paramError as BusinessError).message;
1699  console.error(`[appManager] error: ${code}, ${message}`);
1700}
1701```
1702
1703## appManager.setKeepAliveForBundle<sup>14+</sup>
1704
1705setKeepAliveForBundle(bundleName: string, userId: number, enable: boolean): Promise\<void>
1706
1707为指定用户下的应用设置或取消保活。使用Promise异步回调。
1708
1709> **说明:**
1710>
1711>- 应用如果需要支持保活,其[module.json5配置文件](../../quick-start/module-configuration-file.md)中的mainElement必须是UIAbility。只有当mainElement启动后,系统才会执行应用保活操作。
1712>- 在2in1设备上,被保活的应用需要在启动后5秒内添加至状态栏。否则,系统将取消该应用的保活设置,并杀死保活重启的进程。
1713>- 当被保活的应用进程退出时,系统将尝试重启该进程,连续3次重启失败后将不再继续重启。
1714
1715**需要权限**:ohos.permission.MANAGE_APP_KEEP_ALIVE
1716
1717**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
1718
1719**设备行为差异**:从API version 18开始,该接口仅在2in1和Wearable设备上生效。对于API version 18之前版本,该接口仅在2in1设备上生效。其他情况下调用该接口将返回错误码801。
1720
1721**系统接口**:此接口为系统接口。
1722
1723**参数:**
1724
1725| 参数名 | 类型 | 必填 | 说明 |
1726| -------- | -------- | -------- | -------- |
1727| bundleName    | string   | 是    | 表示要设置保活的应用包名。 |
1728| userId    | number   | 是    | 表示要设置保活应用所属的用户ID。 |
1729| enable    | boolean   | 是    | 表示对应用保活或者取消保活。true表示对应用保活,false表示对应用取消保活。 |
1730
1731**返回值:**
1732
1733| 类型 | 说明 |
1734| -------- | -------- |
1735| Promise\<void> | Promise对象。无返回结果的Promise对象。|
1736
1737**错误码**:
1738
1739以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。
1740
1741| 错误码ID | 错误信息 |
1742| ------- | -------- |
1743| 201 | Permission denied. |
1744| 202 | Not system application. |
1745| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
1746| 801 | Capability not supported. |
1747| 16000050 | Internal error. |
1748| 16300005 | The target bundle does not exist. |
1749| 16300008 | The target bundle has no MainAbility. |
1750| 16300009 | The target bundle has no status-bar ability. |
1751| 16300010 | The target application is not attached to the status bar. |
1752
1753**示例:**
1754
1755```ts
1756import { appManager } from '@kit.AbilityKit';
1757import { BusinessError } from '@kit.BasicServicesKit';
1758
1759try {
1760  let bundleName = "ohos.samples.keepaliveapp";
1761  let userId = 100;
1762  appManager.setKeepAliveForBundle(bundleName, userId, true).then(() => {
1763    console.info(`setKeepAliveForBundle success`);
1764  }).catch((err: BusinessError) => {
1765    console.error(`setKeepAliveForBundle fail, err: ${JSON.stringify(err)}`);
1766  });
1767} catch (paramError) {
1768  let code = (paramError as BusinessError).code;
1769  let message = (paramError as BusinessError).message;
1770  console.error(`[appManager] setKeepAliveForBundle error: ${code}, ${message}`);
1771}
1772```
1773
1774## appManager.getKeepAliveBundles<sup>14+</sup>
1775
1776getKeepAliveBundles(type: KeepAliveAppType, userId?: number): Promise\<Array\<KeepAliveBundleInfo>>
1777
1778获取指定用户下指定类型的保活应用信息。该应用信息由[KeepAliveBundleInfo](#keepalivebundleinfo14)定义。
1779使用Promise异步回调。
1780
1781**需要权限**:ohos.permission.MANAGE_APP_KEEP_ALIVE
1782
1783**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
1784
1785**设备行为差异**:该接口在PC/2in1中可正常调用,在其他设备类型中返回801错误码。
1786
1787**系统接口**:此接口为系统接口。
1788
1789**参数:**
1790
1791| 参数名 | 类型 | 必填 | 说明 |
1792| -------- | -------- | -------- | -------- |
1793| type    | [KeepAliveAppType](#keepaliveapptype14)   | 是    | 表示要查询的保活应用类型。 |
1794| userId    | number   | 否    | 表示要设置保活应用所属的用户ID。 |
1795
1796**返回值:**
1797
1798| 类型 | 说明 |
1799| -------- | -------- |
1800| Promise\<Array\<[KeepAliveBundleInfo](#keepalivebundleinfo14)>> | Promise对象,返回用户保活应用信息的数组。|
1801
1802**错误码**:
1803
1804以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。
1805
1806| 错误码ID | 错误信息 |
1807| ------- | -------- |
1808| 201 | Permission denied. |
1809| 202 | Not System App. Interface caller is not a system app. |
1810| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
1811| 801 | Capability not supported. |
1812| 16000050 | Internal error. |
1813
1814**示例:**
1815
1816```ts
1817import { appManager } from '@kit.AbilityKit';
1818import { BusinessError } from '@kit.BasicServicesKit';
1819
1820let userId = 100;
1821let type: appManager.KeepAliveAppType = appManager.KeepAliveAppType.THIRD_PARTY;
1822try {
1823  appManager.getKeepAliveBundles(type, userId).then((data) => {
1824    console.info(`getKeepAliveBundles success, data: ${JSON.stringify(data)}`);
1825  }).catch((err: BusinessError) => {
1826    console.error(`getKeepAliveBundles fail, err: ${JSON.stringify(err)}`);
1827  });
1828} catch (paramError) {
1829  let code = (paramError as BusinessError).code;
1830  let message = (paramError as BusinessError).message;
1831  console.error(`[appManager] getKeepAliveBundles error: ${code}, ${message}`);
1832}
1833```
1834
1835
1836## appManager.killProcessesInBatch<sup>14+</sup>
1837
1838killProcessesInBatch(pids: Array\<number>): Promise\<void>
1839
1840批量查杀进程。
1841
1842**需要权限**:ohos.permission.KILL_APP_PROCESSES
1843
1844**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
1845
1846**设备行为差异**:该接口在PC/2in1中可正常调用,在其他设备类型中返回801错误码。
1847
1848**系统接口**:此接口为系统接口。
1849
1850**参数:**
1851
1852| 参数名 | 类型 | 必填 | 说明 |
1853| -------- | -------- | -------- | -------- |
1854| pids    | Array\<number>   | 是    | 要查杀的进程ID。 |
1855
1856**返回值:**
1857
1858| 类型 | 说明 |
1859| -------- | -------- |
1860| Promise\<void> | Promise对象。无返回结果的Promise对象。 |
1861
1862**错误码**:
1863
1864以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。
1865
1866| 错误码ID | 错误信息 |
1867| ------- | -------- |
1868| 201 | Permission denied. |
1869| 202 | Not System App. Interface caller is not a system app. |
1870| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
1871| 801 | Capability not supported. |
1872| 16000050 | Internal error. |
1873
1874**示例:**
1875
1876```ts
1877import { appManager } from '@kit.AbilityKit';
1878import { BusinessError } from '@kit.BasicServicesKit';
1879
1880try {
1881  let pids: Array<number> = [100, 101, 102];
1882  appManager.killProcessesInBatch(pids).then(() => {
1883    console.info(`killProcessesInBatch success`);
1884  }).catch((err: BusinessError) => {
1885    console.error(`killProcessesInBatch fail, err: ${JSON.stringify(err)}`);
1886  });
1887} catch (paramError) {
1888  let code = (paramError as BusinessError).code;
1889  let message = (paramError as BusinessError).message;
1890  console.error(`[appManager] killProcessesInBatch error: ${code}, ${message}`);
1891}
1892```
1893
1894## appManager.setKeepAliveForAppServiceExtension<sup>20+</sup>
1895
1896setKeepAliveForAppServiceExtension(bundleName: string, enabled: boolean): Promise\<void>
1897
1898为AppServiceExtensionAbility设置保活或取消保活。使用Promise异步回调。
1899> **说明:**
1900>
1901> - 仅当应用安装在userId为1的用户下,且应用中entry类型的HAP的module.json5配置文件中的mainElement字段配置为AppServiceExtensionAbility时,该接口才生效。
1902
1903**需要权限**:ohos.permission.MANAGE_APP_KEEP_ALIVE
1904
1905**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
1906
1907**设备行为差异**:该接口在PC/2in1中可正常调用,在其他设备类型中返回801错误码。
1908
1909**系统接口**:此接口为系统接口。
1910
1911**参数:**
1912
1913| 参数名 | 类型 | 必填 | 说明 |
1914| -------- | -------- | -------- | -------- |
1915| bundleName    | string   | 是    | 表示要设置保活的应用包名。 |
1916| enabled    | boolean   | 是    | 表示是否进行应用保活。true表示保活,false表示不保活。 |
1917
1918**返回值:**
1919
1920| 类型 | 说明 |
1921| -------- | -------- |
1922| Promise\<void> | Promise对象。无返回结果的Promise对象。|
1923
1924**错误码**:
1925
1926以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。
1927
1928| 错误码ID | 错误信息 |
1929| ------- | -------- |
1930| 201 | Permission denied. |
1931| 202 | Not system application. |
1932| 801 | Capability not supported. |
1933| 16000050 | Internal error. |
1934| 16000081 | Failed to obtain the target application information. |
1935| 16000202 | Invalid main element type. |
1936| 16000203 | Cannot change the keep-alive status. |
1937| 16000204 | The target bundle is not in u1. |
1938
1939**示例:**
1940
1941```ts
1942import { appManager } from '@kit.AbilityKit';
1943import { BusinessError } from '@kit.BasicServicesKit';
1944
1945try {
1946  let bundleName = "ohos.samples.keepaliveapp";
1947  appManager.setKeepAliveForAppServiceExtension(bundleName, true).then(() => {
1948    console.info(`setKeepAliveForAppServiceExtension success`);
1949  }).catch((err: BusinessError) => {
1950    console.error(`setKeepAliveForAppServiceExtension fail, err: ${JSON.stringify(err)}`);
1951  });
1952} catch (paramError) {
1953  let code = (paramError as BusinessError).code;
1954  let message = (paramError as BusinessError).message;
1955  console.error(`[appManager] setKeepAliveForAppServiceExtension error: ${code}, ${message}`);
1956}
1957```
1958
1959## appManager.getKeepAliveAppServiceExtensions<sup>20+</sup>
1960
1961getKeepAliveAppServiceExtensions(): Promise\<Array\<KeepAliveBundleInfo>>
1962
1963获取所有保活的AppServiceExtensionAbility应用信息,此信息由[KeepAliveBundleInfo](#keepalivebundleinfo14)定义。使用Promise异步回调。
1964
1965
1966**需要权限**:ohos.permission.MANAGE_APP_KEEP_ALIVE
1967
1968**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
1969
1970**设备行为差异**:该接口在PC/2in1中可正常调用,在其他设备类型中返回801错误码。
1971
1972**系统接口**:此接口为系统接口。
1973
1974**返回值:**
1975
1976| 类型 | 说明 |
1977| -------- | -------- |
1978| Promise\<Array\<[KeepAliveBundleInfo](#keepalivebundleinfo14)>> | Promise对象,返回用户保活应用信息的数组。|
1979
1980**错误码**:
1981
1982以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。
1983
1984| 错误码ID | 错误信息 |
1985| ------- | -------- |
1986| 201 | Permission denied. |
1987| 202 | Not system application. |
1988| 801 | Capability not supported. |
1989| 16000050 | Internal error. |
1990
1991**示例:**
1992
1993```ts
1994import { appManager } from '@kit.AbilityKit';
1995import { BusinessError } from '@kit.BasicServicesKit';
1996
1997try {
1998  appManager.getKeepAliveAppServiceExtensions().then((data) => {
1999    console.info(`getKeepAliveAppServiceExtensions success, data: ${JSON.stringify(data)}`);
2000  }).catch((err: BusinessError) => {
2001    console.error(`getKeepAliveAppServiceExtensions fail, err: ${JSON.stringify(err)}`);
2002  });
2003} catch (paramError) {
2004  let code = (paramError as BusinessError).code;
2005  let message = (paramError as BusinessError).message;
2006  console.error(`[appManager] getKeepAliveAppServiceExtensions error: ${code}, ${message}`);
2007}
2008```
2009
2010## AppForegroundStateObserver<sup>11+</sup>
2011
2012type AppForegroundStateObserver = _AppForegroundStateObserver
2013
2014应用启动和退出的状态监听。
2015
2016**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
2017
2018| 类型 | 说明 |
2019| --- | --- |
2020| [_AppForegroundStateObserver](js-apis-inner-application-appForegroundStateObserver-sys.md) | 应用启动和退出的状态监听。 |
2021
2022## AbilityFirstFrameStateObserver<sup>12+</sup>
2023
2024type AbilityFirstFrameStateObserver = _AbilityFirstFrameStateObserver
2025
2026UIAbility首帧绘制完成事件监听对象。
2027
2028**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
2029
2030| 类型 | 说明 |
2031| --- | --- |
2032| [_AbilityFirstFrameStateObserver](js-apis-inner-application-abilityFirstFrameStateData-sys.md) | UIAbility首帧绘制完成事件监听对象。 |
2033
2034## AbilityFirstFrameStateData<sup>12+</sup>
2035
2036type AbilityFirstFrameStateData = _AbilityFirstFrameStateData
2037
2038UIAbility首帧绘制完成回调上报数据结构。
2039
2040**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
2041
2042| 类型 | 说明 |
2043| --- | --- |
2044| [_AbilityFirstFrameStateData](js-apis-inner-application-abilityFirstFrameStateData-sys.md) | UIAbility首帧绘制完成回调上报数据结构。 |
2045
2046## RunningMultiAppInfo<sup>12+</sup>
2047
2048type RunningMultiAppInfo = _RunningMultiAppInfo
2049
2050应用多开在运行态的结构信息。
2051
2052**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
2053
2054| 类型 | 说明 |
2055| --- | --- |
2056| [_RunningMultiAppInfo](js-apis-inner-application-runningMultiAppInfo-sys.md) | 应用多开在运行态的结构信息。 |
2057