1# @ohos.application.appManager (appManager) (System API)
2
3The **appManager** module implements application management. You can use the APIs of this module to query whether the application is undergoing a stability test, whether the application is running on a RAM constrained device, the memory size of the application, and information about the running process.
4
5> **NOTE**
6>
7> The APIs of this module are supported since API version 8 and deprecated since API version 9. You are advised to use [@ohos.app.ability.appManager](js-apis-app-ability-appManager.md) instead. Newly added APIs will be marked with a superscript to indicate their earliest API version.
8>
9> This topic describes only system APIs provided by the module. For details about its public APIs, see [@ohos.application.appManager (appManager)](js-apis-app-ability-wantConstant.md).
10
11## Modules to Import
12
13```ts
14import appManager from '@ohos.application.appManager';
15```
16
17## appManager.registerApplicationStateObserver
18
19registerApplicationStateObserver(observer: ApplicationStateObserver): number
20
21Registers an observer to listen for the state changes of all applications.
22
23**Required permissions**: ohos.permission.RUNNING_STATE_OBSERVER
24
25**System capability**: SystemCapability.Ability.AbilityRuntime.Core
26
27**System API**: This is a system API.
28
29**Parameters**
30
31| Name| Type| Mandatory| Description|
32| -------- | -------- | -------- | -------- |
33| observer | [ApplicationStateObserver](js-apis-inner-application-applicationStateObserver.md) | Yes| Application state observer, which is used to observe the lifecycle change of an application.|
34
35**Return value**
36
37| Type| Description|
38| --- | --- |
39| number | Digital code of the observer.|
40
41**Example**
42
43  ```ts
44  import appManager from '@ohos.application.appManager';
45
46  const observerCode = appManager.registerApplicationStateObserver({
47    onForegroundApplicationChanged(appStateData) {
48        console.log('------------ onForegroundApplicationChanged -----------', appStateData);
49    },
50    onAbilityStateChanged(abilityStateData) {
51        console.log('------------ onAbilityStateChanged -----------', abilityStateData);
52    },
53    onProcessCreated(processData) {
54        console.log('------------ onProcessCreated -----------', processData);
55    },
56    onProcessDied(processData) {
57        console.log('------------ onProcessDied -----------', processData);
58    },
59    onProcessStateChanged(processData) {
60        console.log('------------ onProcessStateChanged -----------', processData);
61    }
62  });
63  console.log('-------- observerCode: ---------', observerCode);
64  ```
65
66## appManager.unregisterApplicationStateObserver
67
68unregisterApplicationStateObserver(observerId: number,  callback: AsyncCallback\<void>): void
69
70Deregisters the application state observer. This API uses an asynchronous callback to return the result.
71
72**Required permissions**: ohos.permission.RUNNING_STATE_OBSERVER
73
74**System capability**: SystemCapability.Ability.AbilityRuntime.Core
75
76**System API**: This is a system API.
77
78**Parameters**
79
80| Name| Type| Mandatory| Description|
81| -------- | -------- | -------- | -------- |
82| observerId | number | Yes| Numeric code of the observer.|
83| callback | AsyncCallback\<void> | Yes| Callback used to return the result.|
84
85**Example**
86
87  ```ts
88  import appManager from '@ohos.application.appManager';
89  import { BusinessError } from '@ohos.base';
90
91  let observerId = 100;
92
93  function unregisterApplicationStateObserverCallback(err: BusinessError) {
94    if (err) {
95        console.error('------------ unregisterApplicationStateObserverCallback ------------', err);
96    }
97  }
98  appManager.unregisterApplicationStateObserver(observerId, unregisterApplicationStateObserverCallback);
99  ```
100
101## appManager.unregisterApplicationStateObserver
102
103unregisterApplicationStateObserver(observerId: number): Promise\<void>
104
105Deregisters the application state observer. This API uses a promise to return the result.
106
107**Required permissions**: ohos.permission.RUNNING_STATE_OBSERVER
108
109**System capability**: SystemCapability.Ability.AbilityRuntime.Core
110
111**System API**: This is a system API.
112
113**Parameters**
114
115| Name| Type| Mandatory| Description|
116| -------- | -------- | -------- | -------- |
117| observerId | number | Yes| Numeric code of the observer.|
118
119**Return value**
120
121| Type| Description|
122| -------- | -------- |
123| Promise\<void> | Promise that returns no value.|
124
125**Example**
126
127  ```ts
128  import appManager from '@ohos.application.appManager';
129  import { BusinessError } from '@ohos.base';
130
131  let observerId = 100;
132
133  appManager.unregisterApplicationStateObserver(observerId)
134  .then((data) => {
135      console.log('----------- unregisterApplicationStateObserver success ----------', data);
136  })
137  .catch((err: BusinessError) => {
138      console.error('----------- unregisterApplicationStateObserver fail ----------', err);
139  });
140  ```
141
142## appManager.getForegroundApplications
143
144getForegroundApplications(callback: AsyncCallback\<Array\<AppStateData>>): void
145
146Obtains information about the applications that are running in the foreground. The application information is defined by [AppStateData](js-apis-inner-application-appStateData.md). This API uses an asynchronous callback to return the result.
147
148**Required permissions**: ohos.permission.GET_RUNNING_INFO
149
150**System capability**: SystemCapability.Ability.AbilityRuntime.Core
151
152**System API**: This is a system API.
153
154**Parameters**
155
156| Name| Type| Mandatory| Description|
157| -------- | -------- | -------- | -------- |
158| callback | AsyncCallback\<Array\<[AppStateData](js-apis-inner-application-appStateData.md)>> | Yes| Callback used to return the application information.|
159
160**Example**
161
162  ```ts
163  import appManager from '@ohos.application.appManager';
164
165  appManager.getForegroundApplications((err, data) => {
166    if (err) {
167        console.error('--------- getForegroundApplicationsCallback fail ---------', err);
168    } else {
169        console.log('--------- getForegroundApplicationsCallback success ---------', data);
170    }
171  });
172  ```
173
174## appManager.getForegroundApplications
175
176getForegroundApplications(): Promise\<Array\<AppStateData>>
177
178Obtains information about the applications that are running in the foreground. The application information is defined by [AppStateData](js-apis-inner-application-appStateData.md). This API uses a promise to return the result.
179
180**Required permissions**: ohos.permission.GET_RUNNING_INFO
181
182**System capability**: SystemCapability.Ability.AbilityRuntime.Core
183
184**System API**: This is a system API.
185
186**Return value**
187
188| Type| Description|
189| -------- | -------- |
190| Promise\<Array\<[AppStateData](js-apis-inner-application-appStateData.md)>> | Promise used to return the application information.|
191
192**Example**
193
194  ```ts
195  import appManager from '@ohos.application.appManager';
196  import { BusinessError } from '@ohos.base';
197
198  appManager.getForegroundApplications()
199  .then((data) => {
200      console.log('--------- getForegroundApplications success -------', data);
201  })
202  .catch((err: BusinessError) => {
203      console.error('--------- getForegroundApplications fail -------', err);
204  });
205  ```
206
207## appManager.killProcessWithAccount
208
209killProcessWithAccount(bundleName: string, accountId: number): Promise\<void\>
210
211Kills a process by bundle name and account ID. This API uses a promise to return the result.
212
213> **NOTE**
214>
215> The **ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS** permission is not required when **accountId** specifies the current user.
216
217**Required permissions**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS and ohos.permission.CLEAN_BACKGROUND_PROCESSES
218
219**System capability**: SystemCapability.Ability.AbilityRuntime.Core
220
221**System API**: This is a system API.
222
223**Parameters**
224
225| Name| Type| Mandatory| Description|
226| -------- | -------- | -------- | -------- |
227| bundleName | string | Yes| Bundle name.|
228| accountId | number | Yes| ID of a system account. For details, see [getCreatedOsAccountsCount](../apis-basic-services-kit/js-apis-osAccount.md#getosaccountlocalidfromprocess).|
229
230**Return value**
231
232| Type| Description|
233| -------- | -------- |
234| Promise\<void> | Promise that returns no value.|
235
236**Example**
237
238```ts
239import appManager from '@ohos.application.appManager';
240import { BusinessError } from '@ohos.base';
241
242let bundleName = 'bundleName';
243let accountId = 0;
244appManager.killProcessWithAccount(bundleName, accountId)
245   .then((data) => {
246       console.log('------------ killProcessWithAccount success ------------', data);
247   })
248   .catch((err: BusinessError) => {
249       console.error('------------ killProcessWithAccount fail ------------', err);
250   });
251```
252
253
254## appManager.killProcessWithAccount
255
256killProcessWithAccount(bundleName: string, accountId: number, callback: AsyncCallback\<void\>): void
257
258Kills a process by bundle name and account ID. This API uses an asynchronous callback to return the result.
259
260> **NOTE**
261>
262> The **ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS** permission is not required when **accountId** specifies the current user.
263
264**System capability**: SystemCapability.Ability.AbilityRuntime.Core
265
266**System API**: This is a system API.
267
268**Required permissions**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS and ohos.permission.CLEAN_BACKGROUND_PROCESSES
269
270**Parameters**
271
272| Name| Type| Mandatory| Description|
273| -------- | -------- | -------- | -------- |
274| bundleName | string | Yes| Bundle name.|
275| accountId | number | Yes| ID of a system account. For details, see [getCreatedOsAccountsCount](../apis-basic-services-kit/js-apis-osAccount.md#getosaccountlocalidfromprocess).|
276| callback | AsyncCallback\<void\> | Yes| Callback used to return the result. If the process is killed, **err** is **undefined**; otherwise, **err** is an error object.|
277
278**Example**
279
280```ts
281import appManager from '@ohos.application.appManager';
282import { BusinessError } from '@ohos.base';
283
284let bundleName = 'bundleName';
285let accountId = 0;
286function killProcessWithAccountCallback(err: BusinessError, data: void) {
287   if (err) {
288       console.error('------------- killProcessWithAccountCallback fail, err: --------------', err);
289   } else {
290       console.log('------------- killProcessWithAccountCallback success, data: --------------', data);
291   }
292}
293appManager.killProcessWithAccount(bundleName, accountId, killProcessWithAccountCallback);
294```
295
296## appManager.killProcessesByBundleName
297
298killProcessesByBundleName(bundleName: string, callback: AsyncCallback\<void>)
299
300Kills a process by bundle name. This API uses an asynchronous callback to return the result.
301
302**Required permissions**: ohos.permission.CLEAN_BACKGROUND_PROCESSES
303
304**System capability**: SystemCapability.Ability.AbilityRuntime.Core
305
306**System API**: This is a system API.
307
308**Parameters**
309
310| Name| Type| Mandatory| Description|
311| -------- | -------- | -------- | -------- |
312| bundleName | string | Yes| Bundle name.|
313| callback | AsyncCallback\<void> | Yes| Callback used to return the result. If the process is killed, **err** is **undefined**; otherwise, **err** is an error object.|
314
315**Example**
316
317  ```ts
318  import appManager from '@ohos.application.appManager';
319import { BusinessError } from '@ohos.base';
320
321  let bundleName = 'bundleName';
322  function killProcessesByBundleNameCallback(err: BusinessError, data: void) {
323    if (err) {
324        console.error('------------- killProcessesByBundleNameCallback fail, err: --------------', err);
325    } else {
326        console.log('------------- killProcessesByBundleNameCallback success, data: --------------', data);
327    }
328  }
329  appManager.killProcessesByBundleName(bundleName, killProcessesByBundleNameCallback);
330  ```
331
332## appManager.killProcessesByBundleName
333
334killProcessesByBundleName(bundleName: string): Promise\<void>
335
336Kills a process by bundle name. This API uses a promise to return the result.
337
338**Required permissions**: ohos.permission.CLEAN_BACKGROUND_PROCESSES
339
340**System capability**: SystemCapability.Ability.AbilityRuntime.Core
341
342**System API**: This is a system API.
343
344**Parameters**
345
346| Name| Type| Mandatory| Description|
347| -------- | -------- | -------- | -------- |
348| bundleName | string | Yes| Bundle name.|
349
350**Return value**
351
352| Type| Description|
353| -------- | -------- |
354| Promise\<void> | Promise that returns no value.|
355
356**Example**
357
358  ```ts
359  import appManager from '@ohos.application.appManager';
360  import { BusinessError } from '@ohos.base';
361
362  let bundleName = 'com.example.myapplication';
363  appManager.killProcessesByBundleName(bundleName)
364    .then((data) => {
365        console.log('------------ killProcessesByBundleName success ------------', data);
366    })
367    .catch((err: BusinessError) => {
368        console.error('------------ killProcessesByBundleName fail ------------', err);
369    });
370  ```
371
372## appManager.clearUpApplicationData
373
374clearUpApplicationData(bundleName: string, callback: AsyncCallback\<void>)
375
376Clears application data by bundle name. This API uses an asynchronous callback to return the result.
377
378**Required permissions**: ohos.permission.CLEAN_APPLICATION_DATA
379
380**System capability**: SystemCapability.Ability.AbilityRuntime.Core
381
382**System API**: This is a system API.
383
384**Parameters**
385
386| Name| Type| Mandatory| Description|
387| -------- | -------- | -------- | -------- |
388| bundleName | string | Yes| Bundle name.|
389| callback | AsyncCallback\<void> | Yes| Callback used to return the result. If the application data is cleared, **err** is **undefined**; otherwise, **err** is an error object.|
390
391**Example**
392
393  ```ts
394  import appManager from '@ohos.application.appManager';
395  import { BusinessError } from '@ohos.base';
396
397  let bundleName = 'bundleName';
398  function clearUpApplicationDataCallback(err: BusinessError, data: void) {
399    if (err) {
400        console.error('------------- clearUpApplicationDataCallback fail, err: --------------', err);
401    } else {
402        console.log('------------- clearUpApplicationDataCallback success, data: --------------', data);
403    }
404  }
405  appManager.clearUpApplicationData(bundleName, clearUpApplicationDataCallback);
406  ```
407
408## appManager.clearUpApplicationData
409
410clearUpApplicationData(bundleName: string): Promise\<void>
411
412Clears application data by bundle name. This API uses a promise to return the result.
413
414**Required permissions**: ohos.permission.CLEAN_APPLICATION_DATA
415
416**System capability**: SystemCapability.Ability.AbilityRuntime.Core
417
418**System API**: This is a system API.
419
420**Parameters**
421
422| Name| Type| Mandatory| Description|
423| -------- | -------- | -------- | -------- |
424| bundleName | string | Yes| Bundle name.|
425
426**Return value**
427
428| Type| Description|
429| -------- | -------- |
430| Promise\<void> | Promise that returns no value.|
431
432**Example**
433
434  ```ts
435  import appManager from '@ohos.application.appManager';
436  import { BusinessError } from '@ohos.base';
437
438  let bundleName = 'bundleName';
439  appManager.clearUpApplicationData(bundleName)
440    .then((data) => {
441        console.log('------------ clearUpApplicationData success ------------', data);
442    })
443    .catch((err: BusinessError) => {
444        console.error('------------ clearUpApplicationData fail ------------', err);
445    });
446  ```
447