1# @ohos.application.appManager (appManager)(系统接口)
2
3appManager模块提供App管理的能力,包括查询当前是否处于稳定性测试场景、查询是否为ram受限设备、获取应用程序的内存大小、获取有关运行进程的信息等。
4
5> **说明:**
6>
7> 本模块首批接口从API version 8 开始支持,从API version 9废弃,替换模块为[@ohos.app.ability.appManager](js-apis-app-ability-appManager.md)。后续版本的新增接口,采用上角标单独标记接口的起始版本。
8>
9> 当前页面仅包含本模块的系统接口,其他公开接口参见[@ohos.application.appManager (appManager)](js-apis-application-appManager.md)。
10
11## 导入模块
12
13```ts
14import appManager from '@ohos.application.appManager';
15```
16
17## appManager.registerApplicationStateObserver
18
19registerApplicationStateObserver(observer: ApplicationStateObserver): number
20
21注册全部应用程序状态观测器。
22
23**需要权限**:ohos.permission.RUNNING_STATE_OBSERVER
24
25**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
26
27**系统接口**:此接口为系统接口。
28
29**参数:**
30
31| 参数名 | 类型 | 必填 | 说明 |
32| -------- | -------- | -------- | -------- |
33| observer | [ApplicationStateObserver](js-apis-inner-application-applicationStateObserver.md) | 是 | 表示程序状态观测器,用于观测应用的生命周期变化。 |
34
35**返回值:**
36
37| 类型 | 说明 |
38| --- | --- |
39| number | 已注册观测器的数字代码。|
40
41**示例:**
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
70取消注册应用程序状态观测器。使用callback异步回调。
71
72**需要权限**:ohos.permission.RUNNING_STATE_OBSERVER
73
74**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
75
76**系统接口**:此接口为系统接口。
77
78**参数:**
79
80| 参数名 | 类型 | 必填 | 说明 |
81| -------- | -------- | -------- | -------- |
82| observerId | number | 是 | 表示观察者的编号代码。 |
83| callback | AsyncCallback\<void> | 是 | 表示指定的callback回调方法。 |
84
85**示例:**
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
105取消注册应用程序状态观测器。使用Promise异步回调。
106
107**需要权限**:ohos.permission.RUNNING_STATE_OBSERVER
108
109**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
110
111**系统接口**:此接口为系统接口。
112
113**参数:**
114
115| 参数名 | 类型 | 必填 | 说明 |
116| -------- | -------- | -------- | -------- |
117| observerId | number | 是 | 表示观察者的编号代码。 |
118
119**返回值:**
120
121| 类型 | 说明 |
122| -------- | -------- |
123| Promise\<void> | Promise对象。无返回结果的Promise对象。 |
124
125**示例:**
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
146获取所有当前处于前台的应用信息。该应用信息由[AppStateData](js-apis-inner-application-appStateData.md)定义。使用callback异步回调。
147
148**需要权限**:ohos.permission.GET_RUNNING_INFO
149
150**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
151
152**系统接口**:此接口为系统接口。
153
154**参数:**
155
156| 参数名 | 类型 | 必填 | 说明 |
157| -------- | -------- | -------- | -------- |
158| callback | AsyncCallback\<Array\<[AppStateData](js-apis-inner-application-appStateData.md)>> | 是 | 回调函数,返回所有当前处于前台的应用信息。 |
159
160**示例:**
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
178获取所有当前处于前台的应用信息。该应用信息由[AppStateData](js-apis-inner-application-appStateData.md)定义。使用Promise异步回调。
179
180**需要权限**:ohos.permission.GET_RUNNING_INFO
181
182**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
183
184**系统接口**:此接口为系统接口。
185
186**返回值:**
187
188| 类型 | 说明 |
189| -------- | -------- |
190| Promise\<Array\<[AppStateData](js-apis-inner-application-appStateData.md)>> | Promise对象,返回所有当前处于前台的应用信息。 |
191
192**示例:**
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
211切断account进程(Promise形式)。
212
213> **说明:**
214>
215> 当accountId为当前用户时,不需要校验ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS权限。
216
217**需要权限**:ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS, ohos.permission.CLEAN_BACKGROUND_PROCESSES
218
219**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
220
221**系统接口**:此接口为系统接口。
222
223**参数:**
224
225| 参数名 | 类型 | 必填 | 说明 |
226| -------- | -------- | -------- | -------- |
227| bundleName | string | 是 | 应用Bundle名称。 |
228| accountId | number | 是 | 系统账号的账号ID,详情参考[getCreatedOsAccountsCount](../apis-basic-services-kit/js-apis-osAccount.md#getosaccountlocalidfromprocess)。 |
229
230**返回值:**
231
232| 类型 | 说明 |
233| -------- | -------- |
234| Promise\<void> | Promise对象。无返回结果的Promise对象。 |
235
236**示例:**
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
258切断account进程(callback形式)。
259
260> **说明:**
261>
262> 当accountId为当前用户时,不需要校验ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS权限。
263
264**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
265
266**系统接口**:此接口为系统接口。
267
268**需要权限**:ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS, ohos.permission.CLEAN_BACKGROUND_PROCESSES
269
270**参数:**
271
272| 参数名 | 类型 | 必填 | 说明 |
273| -------- | -------- | -------- | -------- |
274| bundleName | string | 是 | 应用Bundle名称。 |
275| accountId | number | 是 | 系统账号的账号ID,详情参考[getCreatedOsAccountsCount](../apis-basic-services-kit/js-apis-osAccount.md#getosaccountlocalidfromprocess)。 |
276| callback | AsyncCallback\<void\> | 是 | 回调函数,当切断account进程成功。,err为undefined,否则为错误对象。 |
277
278**示例:**
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
300通过Bundle名称终止进程。使用callback异步回调。
301
302**需要权限**:ohos.permission.CLEAN_BACKGROUND_PROCESSES
303
304**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
305
306**系统接口**:此接口为系统接口。
307
308**参数:**
309
310| 参数名 | 类型 | 必填 | 说明 |
311| -------- | -------- | -------- | -------- |
312| bundleName | string | 是 | 表示Bundle名称。 |
313| callback | AsyncCallback\<void> | 是 | 回调函数,当通过Bundle名称终止进程成功,err为undefined,否则为错误对象。 |
314
315**示例:**
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
336通过Bundle名称终止进程。使用Promise异步回调。
337
338**需要权限**:ohos.permission.CLEAN_BACKGROUND_PROCESSES
339
340**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
341
342**系统接口**:此接口为系统接口。
343
344**参数:**
345
346| 参数名 | 类型 | 必填 | 说明 |
347| -------- | -------- | -------- | -------- |
348| bundleName | string | 是 | 表示Bundle名称。 |
349
350**返回值:**
351
352| 类型 | 说明 |
353| -------- | -------- |
354| Promise\<void> | Promise对象。无返回结果的Promise对象。 |
355
356**示例:**
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
376通过Bundle名称清除应用数据。使用callback异步回调。
377
378**需要权限**:ohos.permission.CLEAN_APPLICATION_DATA
379
380**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
381
382**系统接口**:此接口为系统接口。
383
384**参数:**
385
386| 参数名 | 类型 | 必填 | 说明 |
387| -------- | -------- | -------- | -------- |
388| bundleName | string | 是 | 表示Bundle名称。 |
389| callback | AsyncCallback\<void> | 是 | 回调函数,当通过Bundle名称清除应用数据成功,err为undefined,否则为错误对象。 |
390
391**示例:**
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
412通过Bundle名称清除应用数据。使用Promise异步回调。
413
414**需要权限**:ohos.permission.CLEAN_APPLICATION_DATA
415
416**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
417
418**系统接口**:此接口为系统接口。
419
420**参数:**
421
422| 参数名 | 类型 | 必填 | 说明 |
423| -------- | -------- | -------- | -------- |
424| bundleName | string | 是 | 表示Bundle名称。 |
425
426**返回值:**
427
428| 类型 | 说明 |
429| -------- | -------- |
430| Promise\<void> | Promise对象。无返回结果的Promise对象。 |
431
432**示例:**
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  ```