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