• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# AppStateData
2<!--Kit: Ability Kit-->
3<!--Subsystem: Ability-->
4<!--Owner: @SKY2001-->
5<!--Designer: @yzkp-->
6<!--Tester: @lixueqing513-->
7<!--Adviser: @huipeizi-->
8
9定义应用状态信息,使用接口[on](js-apis-app-ability-appManager.md#appmanageronapplicationstate14)注册应用状态变化监听后,当应用、进程或组件的状态变化时,系统通过[ApplicationStateObserver](js-apis-inner-application-applicationStateObserver.md)的[onForegroundApplicationChanged](js-apis-inner-application-applicationStateObserver.md#applicationstateobserveronforegroundapplicationchanged)等方法回调给开发者。
10
11> **说明:**
12>
13> 本模块首批接口从API version 14 开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
14
15## 导入模块
16
17```ts
18import { appManager } from '@kit.AbilityKit';
19```
20
21## 属性
22
23**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
24
25| 名称                      | 类型   | 必填  | 说明       |
26| ------------------------- | ------ | ---- | --------- |
27| bundleName  | string | 是   | Bundle名称。 |
28| uid          | number | 是   | 应用程序的uid。   |
29| state        | number | 是   | 应用状态。<br>0:初始化状态,应用正在初始化<br>1:就绪状态,应用已初始化完毕<br>2:前台状态,应用位于前台<br>3:获焦状态。(预留状态,当前暂不支持)<br>4:后台状态,应用位于后台<br>5:退出状态,应用已退出 |
30| isSplitScreenMode | boolean | 是 | 判断应用是否进入分屏模式。<br>true:应用处于分屏模式。<br>false:应用不处于分屏模式。 |
31| isFloatingWindowMode | boolean | 是 | 判断应用是否进入悬浮窗模式。<br>true:应用处于浮窗模式。<br>false:应用不处于浮窗模式。 |
32
33**示例:**
34
35```ts
36import { appManager } from '@kit.AbilityKit';
37import { BusinessError } from '@kit.BasicServicesKit';
38
39let applicationStateObserver: appManager.ApplicationStateObserver = {
40  onForegroundApplicationChanged(appStateData) {
41    console.log(`[appManager] onForegroundApplicationChanged: ${JSON.stringify(appStateData)}`);
42    console.log(`appStateData.bundleName: ${appStateData.bundleName}`);
43    console.log(`appStateData.uid: ${appStateData.uid}`);
44    console.log(`appStateData.state: ${appStateData.state}`);
45    console.log(`appStateData.isSplitScreenMode: ${appStateData.isSplitScreenMode}`);
46    console.log(`appStateData.isFloatingWindowMode: ${appStateData.isFloatingWindowMode}`);
47  },
48  onAbilityStateChanged(abilityStateData) {
49    console.log(`[appManager] onAbilityStateChanged: ${JSON.stringify(abilityStateData)}`);
50  },
51  onProcessCreated(processData) {
52    console.log(`[appManager] onProcessCreated: ${JSON.stringify(processData)}`);
53  },
54  onProcessDied(processData) {
55    console.log(`[appManager] onProcessDied: ${JSON.stringify(processData)}`);
56  },
57  onProcessStateChanged(processData) {
58    console.log(`[appManager] onProcessStateChanged: ${JSON.stringify(processData)}`);
59  },
60  onAppStarted(appStateData) {
61    console.log(`[appManager] onAppStarted: ${JSON.stringify(appStateData)}`);
62  },
63  onAppStopped(appStateData) {
64    console.log(`[appManager] onAppStopped: ${JSON.stringify(appStateData)}`);
65  }
66};
67
68try {
69  const observerId = appManager.on('applicationState', applicationStateObserver);
70  console.log(`[appManager] observerCode: ${observerId}`);
71} catch (paramError) {
72  let code = (paramError as BusinessError).code;
73  let message = (paramError as BusinessError).message;
74  console.error(`[appManager] error: ${code}, ${message}`);
75}
76```
77