• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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.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以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。
814
815| 错误码ID | 错误信息 |
816| ------- | -------- |
817| 201 | Permission denied. |
818| 202 | Not System App. Interface caller is not a system app. |
819| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
820| 16000050 | Internal error. |
821
822**示例:**
823
824```ts
825import { appManager } from '@kit.AbilityKit';
826import { BusinessError } from '@kit.BasicServicesKit';
827
828let bundleName = 'bundleName';
829let accountId = 0;
830
831try {
832  appManager.killProcessWithAccount(bundleName, accountId).then(() => {
833    console.log('killProcessWithAccount success');
834  }).catch((err: BusinessError) => {
835    console.error(`killProcessWithAccount fail, err: ${JSON.stringify(err)}`);
836  });
837} catch (paramError) {
838  let code = (paramError as BusinessError).code;
839  let message = (paramError as BusinessError).message;
840  console.error(`[appManager] error: ${code}, ${message}`);
841}
842```
843
844
845## appManager.killProcessWithAccount
846
847killProcessWithAccount(bundleName: string, accountId: number, callback: AsyncCallback\<void\>): void
848
849切断account进程(callback形式)。
850
851> **说明:**
852>
853> 当accountId为当前用户时,不需要校验ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS权限。
854
855**需要权限**:ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS, ohos.permission.CLEAN_BACKGROUND_PROCESSES
856
857**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
858
859**系统API**: 此接口为系统接口,三方应用不支持调用。
860
861**参数:**
862
863  | 参数名 | 类型 | 必填 | 说明 |
864  | -------- | -------- | -------- | -------- |
865  | bundleName | string | 是 | 应用Bundle名称。 |
866  | accountId | number | 是 | 系统账号的账号ID,详情参考[getOsAccountLocalId](../apis-basic-services-kit/js-apis-osAccount.md#getosaccountlocalid9)。 |
867  | callback | AsyncCallback\<void\> | 是 | 以回调方式返回接口运行结果,可进行错误处理或其他自定义处理。 |
868
869**错误码**:
870
871以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。
872
873| 错误码ID | 错误信息 |
874| ------- | -------- |
875| 201 | Permission denied. |
876| 202 | Not System App. Interface caller is not a system app. |
877| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
878| 16000050 | Internal error. |
879
880**示例:**
881
882```ts
883import { appManager } from '@kit.AbilityKit';
884import { BusinessError } from '@kit.BasicServicesKit';
885
886let bundleName = 'bundleName';
887let accountId = 0;
888
889function killProcessWithAccountCallback(err: BusinessError) {
890  if (err) {
891    console.error(`killProcessWithAccountCallback fail, err: ${JSON.stringify(err)}`);
892  } else {
893    console.log('killProcessWithAccountCallback success.');
894  }
895}
896
897appManager.killProcessWithAccount(bundleName, accountId, killProcessWithAccountCallback);
898```
899
900## appManager.killProcessesByBundleName
901
902killProcessesByBundleName(bundleName: string, callback: AsyncCallback\<void>)
903
904通过Bundle名称终止进程。
905
906**需要权限**:ohos.permission.CLEAN_BACKGROUND_PROCESSES
907
908**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
909
910**系统API**:该接口为系统接口,三方应用不支持调用。
911
912**参数:**
913
914| 参数名 | 类型 | 必填 | 说明 |
915| -------- | -------- | -------- | -------- |
916| bundleName | string | 是 | 表示Bundle名称。 |
917| callback | AsyncCallback\<void> | 是 | 以回调方式返回接口运行结果,可进行错误处理或其他自定义处理。 |
918
919**错误码**:
920
921以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。
922
923| 错误码ID | 错误信息 |
924| ------- | -------- |
925| 201 | Permission denied. |
926| 202 | Not System App. Interface caller is not a system app. |
927| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
928| 16000050 | Internal error. |
929
930**示例:**
931
932```ts
933import { appManager } from '@kit.AbilityKit';
934import { BusinessError } from '@kit.BasicServicesKit';
935
936let bundleName = 'bundleName';
937
938function killProcessesByBundleNameCallback(err: BusinessError) {
939  if (err) {
940    console.error(`killProcessesByBundleNameCallback fail, err: ${JSON.stringify(err)}`);
941  } else {
942    console.log('killProcessesByBundleNameCallback success.');
943  }
944}
945
946try {
947  appManager.killProcessesByBundleName(bundleName, killProcessesByBundleNameCallback);
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.killProcessesByBundleName
956
957killProcessesByBundleName(bundleName: string): Promise\<void>
958
959通过Bundle名称终止进程。
960
961**需要权限**:ohos.permission.CLEAN_BACKGROUND_PROCESSES
962
963**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
964
965**系统API**:该接口为系统接口,三方应用不支持调用。
966
967**参数:**
968
969| 参数名 | 类型 | 必填 | 说明 |
970| -------- | -------- | -------- | -------- |
971| bundleName | string | 是 | 表示Bundle名称。 |
972
973**返回值:**
974
975| 类型 | 说明 |
976| -------- | -------- |
977| Promise\<void> | 返回执行结果。 |
978
979**错误码**:
980
981以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。
982
983| 错误码ID | 错误信息 |
984| ------- | -------- |
985| 201 | Permission denied. |
986| 202 | Not System App. Interface caller is not a system app. |
987| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
988| 16000050 | Internal error. |
989
990**示例:**
991
992```ts
993import { appManager } from '@kit.AbilityKit';
994import { BusinessError } from '@kit.BasicServicesKit';
995
996let bundleName = 'bundleName';
997
998try {
999  appManager.killProcessesByBundleName(bundleName).then((data) => {
1000    console.log('killProcessesByBundleName success.');
1001  }).catch((err: BusinessError) => {
1002    console.error(`killProcessesByBundleName fail, err: ${JSON.stringify(err)}`);
1003  });
1004} catch (paramError) {
1005  let code = (paramError as BusinessError).code;
1006  let message = (paramError as BusinessError).message;
1007  console.error(`[appManager] error: ${code}, ${message}`);
1008}
1009```
1010
1011## appManager.clearUpApplicationData
1012
1013clearUpApplicationData(bundleName: string, callback: AsyncCallback\<void>)
1014
1015通过Bundle名称清除应用数据。
1016
1017**需要权限**:ohos.permission.CLEAN_APPLICATION_DATA
1018
1019**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
1020
1021**系统API**:该接口为系统接口,三方应用不支持调用。
1022
1023**参数:**
1024
1025| 参数名 | 类型 | 必填 | 说明 |
1026| -------- | -------- | -------- | -------- |
1027| bundleName | string | 是 | 表示Bundle名称。 |
1028| callback | AsyncCallback\<void> | 是 | 以回调方式返回接口运行结果,可进行错误处理或其他自定义处理。 |
1029
1030**错误码**:
1031
1032以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。
1033
1034| 错误码ID | 错误信息 |
1035| ------- | -------- |
1036| 201 | Permission denied. |
1037| 202 | Not System App. Interface caller is not a system app. |
1038| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
1039| 16000050 | Internal error. |
1040
1041**示例:**
1042
1043```ts
1044import { appManager } from '@kit.AbilityKit';
1045import { BusinessError } from '@kit.BasicServicesKit';
1046
1047let bundleName = 'bundleName';
1048
1049function clearUpApplicationDataCallback(err: BusinessError) {
1050  if (err) {
1051    console.error(`clearUpApplicationDataCallback fail, err: ${JSON.stringify(err)}`);
1052  } else {
1053    console.log('clearUpApplicationDataCallback success.');
1054  }
1055}
1056
1057try {
1058  appManager.clearUpApplicationData(bundleName, clearUpApplicationDataCallback);
1059} catch (paramError) {
1060  let code = (paramError as BusinessError).code;
1061  let message = (paramError as BusinessError).message;
1062  console.error(`[appManager] error: ${code}, ${message}`);
1063}
1064```
1065
1066## appManager.clearUpApplicationData
1067
1068clearUpApplicationData(bundleName: string): Promise\<void>
1069
1070通过Bundle名称清除应用数据。
1071
1072**需要权限**:ohos.permission.CLEAN_APPLICATION_DATA
1073
1074**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
1075
1076**系统API**:该接口为系统接口,三方应用不支持调用。
1077
1078**参数:**
1079
1080| 参数名 | 类型 | 必填 | 说明 |
1081| -------- | -------- | -------- | -------- |
1082| bundleName | string | 是 | 表示Bundle名称。 |
1083
1084**返回值:**
1085
1086| 类型 | 说明 |
1087| -------- | -------- |
1088| Promise\<void> | 以Promise方式返回接口运行结果,可进行错误处理或其他自定义处理。 |
1089
1090**错误码**:
1091
1092以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。
1093
1094| 错误码ID | 错误信息 |
1095| ------- | -------- |
1096| 201 | Permission denied. |
1097| 202 | Not System App. Interface caller is not a system app. |
1098| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
1099| 16000050 | Internal error. |
1100
1101**示例:**
1102
1103```ts
1104import { appManager } from '@kit.AbilityKit';
1105import { BusinessError } from '@kit.BasicServicesKit';
1106
1107let bundleName = 'bundleName';
1108
1109try {
1110  appManager.clearUpApplicationData(bundleName).then((data) => {
1111    console.log('clearUpApplicationData success.');
1112  }).catch((err: BusinessError) => {
1113    console.error(`clearUpApplicationData fail, err: ${JSON.stringify(err)}`);
1114  });
1115} catch (paramError) {
1116  let code = (paramError as BusinessError).code;
1117  let message = (paramError as BusinessError).message;
1118  console.error(`[appManager] error: ${code}, ${message}`);
1119}
1120```
1121
1122## appManager.getProcessMemoryByPid<sup>10+</sup>
1123
1124getProcessMemoryByPid(pid: number, callback: AsyncCallback\<number>): void
1125
1126通过pid查询对应进程占用的内存大小。
1127
1128**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
1129
1130**系统API**:此接口为系统接口。
1131
1132**参数:**
1133
1134| 参数名 | 类型 | 必填 | 说明 |
1135| -------- | -------- | -------- | -------- |
1136| pid | number | 是 | 表示进程id,详情参考[getRunningProcessInfoByBundleName](#appmanagergetrunningprocessinfobybundlename10)。 |
1137| callback | AsyncCallback\<number> | 是 | 以回调方式返回接口运行结果及进程占用的内存大小(单位KB),可进行错误处理或其他自定义处理。 |
1138
1139**错误码**:
1140
1141以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。
1142
1143| 错误码ID | 错误信息 |
1144| ------- | -------- |
1145| 202 | Not System App. Interface caller is not a system app. |
1146| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
1147| 16000050 | Internal error. |
1148
1149**示例:**
1150
1151```ts
1152import { appManager } from '@kit.AbilityKit';
1153import { BusinessError } from '@kit.BasicServicesKit';
1154
1155let pid = 0;
1156function getProcessMemoryByPidCallback(err: BusinessError, data: number) {
1157  if (err) {
1158    console.error(`getProcessMemoryByPidCallback fail, err: ${JSON.stringify(err)}`);
1159  } else {
1160    console.log('getProcessMemoryByPidCallback success.');
1161  }
1162}
1163
1164try {
1165  appManager.getProcessMemoryByPid(pid, getProcessMemoryByPidCallback);
1166} catch (paramError) {
1167  let code = (paramError as BusinessError).code;
1168  let message = (paramError as BusinessError).message;
1169  console.error(`[appManager] error: ${code}, ${message}`);
1170}
1171```
1172
1173## appManager.getProcessMemoryByPid<sup>10+</sup>
1174
1175getProcessMemoryByPid(pid: number): Promise\<number>
1176
1177通过pid查询对应进程占用的内存大小。
1178
1179**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
1180
1181**系统API**:此接口为系统接口。
1182
1183**参数:**
1184
1185| 参数名 | 类型 | 必填 | 说明 |
1186| -------- | -------- | -------- | -------- |
1187| pid | number | 是 | 表示进程id,详情参考[getRunningProcessInfoByBundleName](#appmanagergetrunningprocessinfobybundlename10)。  |
1188
1189**返回值:**
1190
1191| 类型 | 说明 |
1192| -------- | -------- |
1193| Promise\<number> | 以Promise方式返回接口运行结果及进程占用的内存大小(单位KB),可进行错误处理或其他自定义处理。 |
1194
1195**错误码**:
1196
1197以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。
1198
1199| 错误码ID | 错误信息 |
1200| ------- | -------- |
1201| 202 | Not System App. Interface caller is not a system app. |
1202| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
1203| 16000050 | Internal error. |
1204
1205**示例:**
1206
1207```ts
1208import { appManager } from '@kit.AbilityKit';
1209import { BusinessError } from '@kit.BasicServicesKit';
1210
1211let pid = 0;
1212
1213try {
1214  appManager.getProcessMemoryByPid(pid).then((data) => {
1215    console.log('getProcessMemoryByPid success.');
1216  }).catch((err: BusinessError) => {
1217    console.error(`getProcessMemoryByPid fail, err: ${JSON.stringify(err)}`);
1218  });
1219} catch (paramError) {
1220  let code = (paramError as BusinessError).code;
1221  let message = (paramError as BusinessError).message;
1222  console.error(`[appManager] error: ${code}, ${message}`);
1223}
1224```
1225
1226## appManager.getRunningProcessInfoByBundleName<sup>10+</sup>
1227
1228getRunningProcessInfoByBundleName(bundleName: string, callback: AsyncCallback\<Array\<ProcessInformation>>): void
1229
1230通过bundleName获取有关运行进程的信息。
1231
1232**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
1233
1234**系统API**:此接口为系统接口。
1235
1236**参数:**
1237
1238| 参数名 | 类型 | 必填 | 说明 |
1239| -------- | -------- | -------- | -------- |
1240| bundleName | string | 是 | 表示Bundle名称。 |
1241| callback | AsyncCallback\<Array\<[ProcessInformation](js-apis-inner-application-processInformation.md)>> | 是 | 以回调方式返回接口运行结果及有关运行进程的信息,可进行错误处理或其他自定义处理。 |
1242
1243**错误码**:
1244
1245以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。
1246
1247| 错误码ID | 错误信息 |
1248| ------- | -------- |
1249| 202 | Not System App. Interface caller is not a system app. |
1250| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
1251| 16000050 | Internal error. |
1252
1253**示例:**
1254
1255```ts
1256import { appManager } from '@kit.AbilityKit';
1257import { BusinessError } from '@kit.BasicServicesKit';
1258
1259let bundleName = "bundleName";
1260function getRunningProcessInfoByBundleNameCallback(err: BusinessError, data: Array<appManager.ProcessInformation>) {
1261  if (err) {
1262    console.error(`getRunningProcessInfoByBundleNameCallback fail, err: ${JSON.stringify(err)}`);
1263  } else {
1264    console.log('getRunningProcessInfoByBundleNameCallback success.');
1265  }
1266}
1267
1268try {
1269  appManager.getRunningProcessInfoByBundleName(bundleName, getRunningProcessInfoByBundleNameCallback);
1270} catch (paramError) {
1271  let code = (paramError as BusinessError).code;
1272  let message = (paramError as BusinessError).message;
1273  console.error(`[appManager] error: ${code}, ${message}`);
1274}
1275```
1276
1277## appManager.getRunningProcessInfoByBundleName<sup>10+</sup>
1278
1279getRunningProcessInfoByBundleName(bundleName: string): Promise\<Array\<ProcessInformation>>
1280
1281通过bundleName获取有关运行进程的信息。
1282
1283**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
1284
1285**系统API**:此接口为系统接口。
1286
1287**参数:**
1288
1289| 参数名 | 类型 | 必填 | 说明 |
1290| -------- | -------- | -------- | -------- |
1291| bundleName | string | 是 | 表示Bundle名称。 |
1292
1293**返回值:**
1294
1295| 类型 | 说明 |
1296| -------- | -------- |
1297| Promise\<Array\<[ProcessInformation](js-apis-inner-application-processInformation.md)>> | 以Promise方式返回接口运行结果及有关运行进程的信息,可进行错误处理或其他自定义处理。 |
1298
1299**错误码**:
1300
1301以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。
1302
1303| 错误码ID | 错误信息 |
1304| ------- | -------- |
1305| 202 | Not System App. Interface caller is not a system app. |
1306| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
1307| 16000050 | Internal error. |
1308
1309**示例:**
1310
1311```ts
1312import { appManager } from '@kit.AbilityKit';
1313import { BusinessError } from '@kit.BasicServicesKit';
1314
1315let bundleName = "bundleName";
1316
1317try {
1318  appManager.getRunningProcessInfoByBundleName(bundleName).then((data) => {
1319    console.log('getRunningProcessInfoByBundleName success.');
1320  }).catch((err: BusinessError) => {
1321    console.error(`getRunningProcessInfoByBundleName fail, err: ${JSON.stringify(err)}`);
1322  });
1323} catch (paramError) {
1324  let code = (paramError as BusinessError).code;
1325  let message = (paramError as BusinessError).message;
1326  console.error(`[appManager] error: ${code}, ${message}`);
1327}
1328```
1329
1330## appManager.getRunningProcessInfoByBundleName<sup>10+</sup>
1331
1332getRunningProcessInfoByBundleName(bundleName: string, userId: number, callback: AsyncCallback\<Array\<ProcessInformation>>): void
1333
1334通过bundleName和userId获取有关运行进程的信息。
1335
1336**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
1337
1338**系统API**:此接口为系统接口。
1339
1340**参数:**
1341
1342| 参数名 | 类型 | 必填 | 说明 |
1343| -------- | -------- | -------- | -------- |
1344| bundleName | string | 是 | 表示Bundle名称。 |
1345| userId | number | 是 | 表示用户Id。 |
1346| callback | AsyncCallback\<Array\<[ProcessInformation](js-apis-inner-application-processInformation.md)>> | 是 | 以回调方式返回接口运行结果及有关运行进程的信息,可进行错误处理或其他自定义处理。 |
1347
1348**错误码**:
1349
1350以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。
1351
1352| 错误码ID | 错误信息 |
1353| ------- | -------- |
1354| 202 | Not System App. Interface caller is not a system app. |
1355| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
1356| 16000050 | Internal error. |
1357
1358**示例:**
1359
1360```ts
1361import { appManager } from '@kit.AbilityKit';
1362import { BusinessError } from '@kit.BasicServicesKit';
1363
1364let bundleName = "bundleName";
1365let userId = 0;
1366function getRunningProcessInfoByBundleNameCallback(err: BusinessError, data: Array<appManager.ProcessInformation>) {
1367  if (err) {
1368    console.error(`getRunningProcessInfoByBundleNameCallback fail, err: ${JSON.stringify(err)}`);
1369  } else {
1370    console.log('getRunningProcessInfoByBundleNameCallback success.');
1371  }
1372}
1373
1374try {
1375  appManager.getRunningProcessInfoByBundleName(bundleName, userId, getRunningProcessInfoByBundleNameCallback);
1376} catch (paramError) {
1377  let code = (paramError as BusinessError).code;
1378  let message = (paramError as BusinessError).message;
1379  console.error(`[appManager] error: ${code}, ${message}`);
1380}
1381```
1382
1383## appManager.getRunningProcessInfoByBundleName<sup>10+</sup>
1384
1385getRunningProcessInfoByBundleName(bundleName: string, userId: number): Promise\<Array\<ProcessInformation>>
1386
1387通过bundleName和userId获取有关运行进程的信息。
1388
1389**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
1390
1391**系统API**:此接口为系统接口。
1392
1393**参数:**
1394
1395| 参数名 | 类型 | 必填 | 说明 |
1396| -------- | -------- | -------- | -------- |
1397| bundleName | string | 是 | 表示Bundle名称。 |
1398| userId | number | 是 | 表示用户Id。 |
1399
1400**返回值:**
1401
1402| 类型 | 说明 |
1403| -------- | -------- |
1404| Promise\<Array\<[ProcessInformation](js-apis-inner-application-processInformation.md)>> | 以Promise方式返回接口运行结果及有关运行进程的信息,可进行错误处理或其他自定义处理。 |
1405
1406**错误码**:
1407
1408以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。
1409
1410| 错误码ID | 错误信息 |
1411| ------- | -------- |
1412| 202 | Not System App. Interface caller is not a system app. |
1413| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
1414| 16000050 | Internal error. |
1415
1416**示例:**
1417
1418```ts
1419import { appManager } from '@kit.AbilityKit';
1420import { BusinessError } from '@kit.BasicServicesKit';
1421
1422let bundleName = "bundleName";
1423let userId = 0;
1424
1425try {
1426  appManager.getRunningProcessInfoByBundleName(bundleName, userId).then((data) => {
1427    console.log('getRunningProcessInfoByBundleName success.');
1428  }).catch((err: BusinessError) => {
1429    console.error(`getRunningProcessInfoByBundleName fail, err: ${JSON.stringify(err)}`);
1430  });
1431} catch (paramError) {
1432  let code = (paramError as BusinessError).code;
1433  let message = (paramError as BusinessError).message;
1434  console.error(`[appManager] error: ${code}, ${message}`);
1435}
1436```
1437
1438## appManager.isApplicationRunning<sup>11+</sup>
1439
1440isApplicationRunning(bundleName: string): Promise\<boolean>
1441
1442查询单个应用是否正在运行。使用Promise异步回调。
1443
1444**系统接口**:此接口为系统接口。
1445
1446**需要权限**:ohos.permission.GET_RUNNING_INFO
1447
1448**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
1449
1450**参数**:
1451
1452| 参数名        | 类型                                       | 必填   | 说明             |
1453| --------- | ---------------------------------------- | ---- | -------------- |
1454| bundleName    | string   | 是    | 表示要查询的应用的包名。 |
1455
1456**返回值:**
1457
1458| 类型 | 说明 |
1459| -------- | -------- |
1460| Promise\<boolean> | Promise对象。返回true表示查询的应用正在运行,返回false表示查询的应用没有运行。 |
1461
1462**错误码**:
1463
1464以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。
1465
1466| 错误码ID | 错误信息 |
1467| ------- | -------- |
1468| 201 | Permission denied. |
1469| 202 | Not System App. Interface caller is not a system app. |
1470| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
1471| 16000050 | Internal error. |
1472
1473**示例:**
1474
1475```ts
1476import { appManager } from '@kit.AbilityKit';
1477import { BusinessError } from '@kit.BasicServicesKit';
1478
1479let bundleName = "com.example.myapplication";
1480
1481appManager.isApplicationRunning(bundleName).then((data) => {
1482  console.log(`The application running is: ${JSON.stringify(data)}`);
1483}).catch((error: BusinessError) => {
1484  console.error(`error: ${JSON.stringify(error)}`);
1485});
1486```
1487
1488## appManager.isApplicationRunning<sup>11+</sup>
1489
1490isApplicationRunning(bundleName: string, callback: AsyncCallback\<boolean>): void
1491
1492查询单个应用是否正在运行。使用callback异步回调。
1493
1494**系统接口**:此接口为系统接口。
1495
1496**需要权限**:ohos.permission.GET_RUNNING_INFO
1497
1498**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
1499
1500**参数**:
1501
1502| 参数名        | 类型                                       | 必填   | 说明             |
1503| --------- | ---------------------------------------- | ---- | -------------- |
1504| bundleName    | string   | 是    | 表示要查询的共享库包名。 |
1505| callback | AsyncCallback&lt;boolean&gt; | 是 | 回调函数。返回true表示查询的应用正在运行,返回false表示查询的应用没有运行。 |
1506
1507**错误码**:
1508
1509以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。
1510
1511| 错误码ID | 错误信息 |
1512| ------- | -------- |
1513| 201 | Permission denied. |
1514| 202 | Not System App. Interface caller is not a system app. |
1515| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
1516| 16000050 | Internal error. |
1517
1518**示例:**
1519
1520```ts
1521import { appManager } from '@kit.AbilityKit';
1522import { BusinessError } from '@kit.BasicServicesKit';
1523
1524let bundleName = "com.example.myapplication";
1525
1526try {
1527  appManager.isApplicationRunning(bundleName, (err, data) => {
1528    if (err) {
1529      console.error(`err: ${JSON.stringify(err)}`);
1530    } else {
1531      console.log(`The application running is: ${JSON.stringify(data)}`);
1532    }
1533  });
1534} catch (paramError) {
1535  let code = (paramError as BusinessError).code;
1536  let message = (paramError as BusinessError).message;
1537  console.error(`[appManager] error: ${code}, ${message}`);
1538}
1539```
1540
1541## ApplicationState
1542
1543应用状态,该类型为枚举,可配合[AbilityStateData](js-apis-inner-application-appStateData-sys.md)返回相应的应用状态。
1544
1545**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
1546
1547**系统API**: 此接口为系统接口,三方应用不支持调用。
1548
1549| 名称                 | 值  | 说明                               |
1550| -------------------- | --- | --------------------------------- |
1551| STATE_CREATE    | 0   |   应用处于创建状态。         |
1552| STATE_FOREGROUND          | 2   |      应用处于前台状态。            |
1553| STATE_ACTIVE  | 3   |     应用处于获焦状态。     |
1554| STATE_BACKGROUND        | 4   |    应用处于后台不可见状态。           |
1555| STATE_DESTROY        | 5   |    应用处于销毁状态。       |
1556
1557
1558## appManager.getRunningProcessInformationByBundleType<sup>12+</sup>
1559
1560getRunningProcessInformationByBundleType(bundleType: bundleManager.BundleType): Promise\<Array\<ProcessInformation>>
1561
1562根据包类型获取当前运行进程的有关信息。使用Promise异步回调。
1563
1564**系统接口**:此接口为系统接口。
1565
1566**需要权限**:ohos.permission.GET_RUNNING_INFO
1567
1568**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
1569
1570**参数**:
1571
1572| 参数名        | 类型                                       | 必填   | 说明             |
1573| --------- | ---------------------------------------- | ---- | -------------- |
1574| bundleType    | [bundleManager.BundleType](js-apis-bundleManager.md#bundletype)  | 是    | 表示要查询的包类型。 |
1575
1576**返回值:**
1577
1578| 类型 | 说明 |
1579| -------- | -------- |
1580| Promise\<Array\<[ProcessInformation](js-apis-inner-application-processInformation.md)>> | Promise对象,返回特定包类型的运行进程的信息。 |
1581
1582**错误码**:
1583以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。
1584
1585| 错误码ID | 错误信息 |
1586| ------- | -------- |
1587| 201 | Permission denied. |
1588| 202 | Not system application. |
1589| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
1590| 16000050 | Internal error. |
1591
1592
1593**示例:**
1594
1595```ts
1596import { appManager, bundleManager } from '@kit.AbilityKit';
1597import { BusinessError } from '@kit.BasicServicesKit';
1598
1599try {
1600  appManager.getRunningProcessInformationByBundleType(bundleManager.BundleType.ATOMIC_SERVICE)
1601    .then((data) => {
1602      console.log(`The running process information is: ${JSON.stringify(data)}`);
1603    }).catch((error: BusinessError) => {
1604    console.error(`error: ${JSON.stringify(error)}`);
1605  });
1606} catch (paramError) {
1607  let code = (paramError as BusinessError).code;
1608  let message = (paramError as BusinessError).message;
1609  console.error(`[appManager] error: ${code}, ${message}`);
1610}
1611```
1612
1613## appManager.preloadApplication<sup>12+</sup>
1614
1615preloadApplication(bundleName: string, userId: number, mode: PreloadMode, appIndex?: number): Promise\<void>
1616
1617预加载应用进程。接口返回成功并不代表预加载成功,具体结果以目标应用进程是否创建成功为准。使用Promise异步回调。
1618
1619**需要权限**:ohos.permission.PRELOAD_APPLICATION
1620
1621**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
1622
1623**系统API**:此接口为系统接口。
1624
1625**模型约束**:此接口仅可在Stage模型下使用。
1626
1627**参数:**
1628
1629| 参数名 | 类型 | 必填 | 说明 |
1630| -------- | -------- | -------- | -------- |
1631| bundleName | string | 是 | 预加载的应用包名。 |
1632| userId | number | 是 | 预加载的用户Id。 |
1633| mode | [PreloadMode](#appmanagerpreloadmode12) | 是 | 预加载模式。 |
1634| appIndex | number | 否 | 预加载应用分身的appIndex。 |
1635
1636**返回值:**
1637
1638| 类型           | 说明              |
1639| -------------- | ---------------- |
1640| Promise\<void> | Promise对象。无返回结果的Promise对象。 |
1641
1642**错误码**:
1643
1644  以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。
1645
1646| 错误码ID | 错误信息 |
1647| ------- | -------- |
1648| 201 | The application does not have permission to call the interface. |
1649| 202 | Not system application. |
1650| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types; 3.Parameter verification failed. |
1651| 16000050 | Internal error. |
1652| 16300005 | The target bundle does not exist. |
1653
1654**示例:**
1655
1656```ts
1657import { appManager } from '@kit.AbilityKit';
1658import { BusinessError } from '@kit.BasicServicesKit';
1659import { hilog } from '@kit.PerformanceAnalysisKit';
1660
1661try {
1662  let bundleName = "ohos.samples.etsclock";
1663  let userId = 100;
1664  let mode = appManager.PreloadMode.PRESS_DOWN;
1665  let appIndex = 0;
1666  appManager.preloadApplication(bundleName, userId, mode, appIndex)
1667    .then(() => {
1668      hilog.info(0x0000, 'testTag', `preloadApplication success`);
1669    })
1670    .catch((err: BusinessError) => {
1671      hilog.error(0x0000, 'testTag', `preloadApplication error, code: ${err.code}, msg:${err.message}`);
1672    })
1673} catch (err) {
1674  hilog.error(0x0000, 'testTag', `preloadApplication error, code: ${(err as BusinessError).code}, msg:${(err as BusinessError).message}`);
1675}
1676```
1677
1678## appManager.getRunningMultiAppInfo<sup>12+</sup>
1679
1680getRunningMultiAppInfo(bundleName: string): Promise\<RunningMultiAppInfo>
1681
1682根据应用包名获取系统中运行态的应用多开(即在一个设备上运行多个相同的应用)的相关信息,使用Promise异步回调。
1683
1684**需要权限**:ohos.permission.GET_RUNNING_INFO
1685
1686**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
1687
1688**系统API**:此接口为系统接口。
1689
1690**模型约束**:此接口仅可在Stage模型下使用。
1691
1692**参数:**
1693
1694| 参数名 | 类型 | 必填 | 说明 |
1695| -------- | -------- | -------- | -------- |
1696| bundleName | string | 是 | 查询的应用包名。 |
1697
1698**返回值:**
1699
1700| 类型           | 说明              |
1701| -------------- | ---------------- |
1702| Promise\<[RunningMultiAppInfo](js-apis-inner-application-runningMultiAppInfo-sys.md)> | Promise对象。返回特定包名的运行态应用多开信息。 |
1703
1704**错误码**:
1705
1706  以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。
1707
1708| 错误码ID | 错误信息 |
1709| ------- | -------- |
1710| 201 | The application does not have permission to call the interface. |
1711| 202 | Not system application. |
1712| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types; 3.Parameter verification failed. |
1713| 16000072 | App clone or multi-instance is not supported. |
1714
1715**示例:**
1716
1717```ts
1718import { appManager } from '@kit.AbilityKit';
1719import { hilog } from '@kit.PerformanceAnalysisKit';
1720import { BusinessError } from '@kit.BasicServicesKit';
1721
1722try {
1723  let bundleName = "ohos.samples.etsclock";
1724  appManager.getRunningMultiAppInfo(bundleName).then((info: appManager.RunningMultiAppInfo) => {
1725      hilog.info(0x0000, 'testTag', `getRunningMultiAppInfo success`);
1726    }).catch((err: BusinessError) => {
1727      hilog.error(0x0000, 'testTag', `getRunningMultiAppInfo error, code: ${err.code}, msg:${err.message}`);
1728    })
1729} catch (err) {
1730  hilog.error(0x0000, 'testTag', `getRunningMultiAppInfo error, code: ${err.code}, msg:${err.message}`);
1731}
1732```
1733
1734## appManager.isAppRunning<sup>12+</sup>
1735
1736isAppRunning(bundleName: string, appCloneIndex?: number): Promise\<boolean>
1737
1738判断应用是否在运行。使用Promise异步回调。
1739
1740**需要权限**:ohos.permission.GET_RUNNING_INFO
1741
1742**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
1743
1744**系统API**:此接口为系统接口。
1745
1746**参数:**
1747
1748| 参数名 | 类型 | 必填 | 说明 |
1749| -------- | -------- | -------- | -------- |
1750| bundleName | string | 是 | 查询的应用包名。 |
1751| appCloneIndex | number | 否 | 分身应用索引。 |
1752
1753**返回值:**
1754
1755| 类型           | 说明              |
1756| -------------- | ---------------- |
1757| Promise\<boolean> | Promise对象。返回true表示应用正在运行,返回false表示应用未运行。 |
1758
1759**错误码**:
1760
1761  以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。
1762
1763| 错误码ID | 错误信息 |
1764| ------- | -------- |
1765| 201 | The application does not have permission to call the interface. |
1766| 202 | Not system application. |
1767| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types; 3.Parameter verification failed. |
1768| 16000050 | Internal error. |
1769| 16000073 | The app clone index is invalid. |
1770
1771**示例:**
1772
1773```ts
1774import { appManager } from '@kit.AbilityKit';
1775import { hilog } from '@kit.PerformanceAnalysisKit';
1776import { BusinessError } from '@kit.BasicServicesKit';
1777
1778try {
1779  let bundleName = "ohos.samples.etsclock";
1780  appManager.isAppRunning(bundleName).then((data: boolean) => {
1781      hilog.info(0x0000, 'testTag', `data: ${JSON.stringify(data)}`);
1782    }).catch((err: BusinessError) => {
1783      hilog.error(0x0000, 'testTag', `isAppRunning error, code: ${err.code}, msg:${err.message}`);
1784    })
1785} catch (err) {
1786  hilog.error(0x0000, 'testTag', `isAppRunning error, code: ${err.code}, msg:${err.message}`);
1787}
1788```
1789
1790## appManager.terminateMission<sup>12+</sup>
1791
1792terminateMission(missionId: number): Promise\<void>
1793
1794关闭指定的任务。使用Promise异步回调。
1795
1796**需要权限**:ohos.permission.KILL_APP_PROCESSES
1797
1798**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
1799
1800**系统接口**:此接口为系统接口。
1801
1802**参数:**
1803
1804| 参数名 | 类型 | 必填 | 说明 |
1805| -------- | -------- | -------- | -------- |
1806| missionId | number | 是 | 任务ID,可通过[getMissionInfos](js-apis-app-ability-missionManager-sys.md#missionmanagergetmissioninfos)获取。 |
1807
1808**返回值:**
1809
1810| 类型 | 说明 |
1811| -------- | -------- |
1812| Promise\<void> | Promise对象。无返回结果的Promise对象。 |
1813
1814**错误码**:
1815
1816以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。
1817
1818| 错误码ID | 错误信息 |
1819| ------- | -------- |
1820| 201 | Permission denied. |
1821| 202 | Not System App. Interface caller is not a system app. |
1822| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
1823| 16000050 | Internal error. |
1824
1825**示例:**
1826```ts
1827import { appManager } from '@kit.AbilityKit';
1828import { BusinessError } from '@kit.BasicServicesKit';
1829
1830@Entry
1831@Component
1832struct Index {
1833  build() {
1834    Button('start link', { type: ButtonType.Capsule, stateEffect: true })
1835      .width('87%')
1836      .height('5%')
1837      .margin({ bottom: '12vp' })
1838      .onClick(() => {
1839        let missionId: number = 0;
1840        try {
1841          appManager.terminateMission(missionId).then(()=>{
1842              console.log('terminateMission success.');
1843            }).catch((err: BusinessError)=>{
1844              console.error('terminateMission failed. err: ' + JSON.stringify(err));
1845            })
1846        } catch (paramError) {
1847          let code = (paramError as BusinessError).code;
1848          let message = (paramError as BusinessError).message;
1849          console.error(`[appManager] error: ${code}, ${message}`);
1850        }
1851      })
1852  }
1853}
1854
1855## appManager.clearUpAppData<sup>13+</sup>
1856
1857clearUpAppData(bundleName: string, appCloneIndex?: number): Promise\<void>
1858
1859根据Bundle名称和应用分身索引,清除指定应用的数据。
1860
1861**需要权限**:ohos.permission.CLEAN_APPLICATION_DATA
1862
1863**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
1864
1865**系统API**:此接口为系统接口。
1866
1867**参数:**
1868
1869| 参数名 | 类型 | 必填 | 说明 |
1870| -------- | -------- | -------- | -------- |
1871| bundleName | string | 是 | 表示Bundle名称。 |
1872| appCloneIndex | number | 否 | 表示应用分身索引。 |
1873
1874**返回值:**
1875
1876| 类型 | 说明 |
1877| -------- | -------- |
1878| Promise\<void> | Promise对象。无返回结果的Promise对象。 |
1879
1880**错误码**:
1881
1882以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。
1883
1884| 错误码ID | 错误信息 |
1885| ------- | -------- |
1886| 201 | Permission denied. |
1887| 202 | Not System App. Interface caller is not a system app. |
1888| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
1889| 16000050 | Internal error. |
1890| 16000073 | The app clone index does not exist. |
1891
1892**示例:**
1893
1894```ts
1895import { appManager } from '@kit.AbilityKit';
1896import { BusinessError } from '@kit.BasicServicesKit';
1897
1898let bundleName: string = 'com.ohos.demo';
1899let appCloneIndex: number = 0;
1900
1901try {
1902  appManager.clearUpAppData(bundleName, appCloneIndex).then(() => {
1903    console.log(`clearUpAppData success.`);
1904  }).catch((err: BusinessError) => {
1905    console.error(`clearUpAppData fail, err: ${JSON.stringify(err)}`);
1906  });
1907} catch (paramError) {
1908  let code = (paramError as BusinessError).code;
1909  let message = (paramError as BusinessError).message;
1910  console.error(`[appManager] error: ${code}, ${message}`);
1911}
1912```