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