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