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