1# @ohos.app.ability.abilityLifecycleCallback (AbilityLifecycleCallback) 2 3AbilityLifecycleCallback模块提供应用上下文[ApplicationContext](js-apis-inner-application-applicationContext.md)的生命周期发生变化时触发相应回调的能力,包括[onAbilityCreate](#abilitylifecyclecallbackonabilitycreate)、[onWindowStageCreate](#abilitylifecyclecallbackonwindowstagecreate)、[onWindowStageActive](#abilitylifecyclecallbackonwindowstageactive)、[onWindowStageInactive](#abilitylifecyclecallbackonwindowstageinactive)、[onWindowStageDestroy](#abilitylifecyclecallbackonwindowstagedestroy)、[onAbilityDestroy](#abilitylifecyclecallbackonabilitydestroy)、[onAbilityForeground](#abilitylifecyclecallbackonabilityforeground)、[onAbilityBackground](#abilitylifecyclecallbackonabilitybackground)、[onAbilityContinue](#abilitylifecyclecallbackonabilitycontinue)方法。 4 5> **说明:** 6> 7> 本模块首批接口从API version 9 开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 8> 本模块接口仅可在Stage模型下使用。 9 10## 导入模块 11 12```ts 13import AbilityLifecycleCallback from '@ohos.app.ability.AbilityLifecycleCallback'; 14``` 15 16## AbilityLifecycleCallback.onAbilityCreate 17 18onAbilityCreate(ability: UIAbility): void; 19 20注册监听应用上下文的生命周期后,在ability创建时触发回调。 21 22**系统能力**:SystemCapability.Ability.AbilityRuntime.AbilityCore 23 24**参数:** 25 26 | 参数名 | 类型 | 必填 | 说明 | 27 | -------- | -------- | -------- | -------- | 28 | ability | [UIAbility](js-apis-app-ability-uiAbility.md) | 是 | 当前Ability对象 | 29 30**示例:** 31```ts 32let abilityLifecycleCallback = { 33 onAbilityCreate(ability){ 34 console.log('AbilityLifecycleCallback onAbilityCreate.'); 35 } 36}; 37``` 38 39## AbilityLifecycleCallback.onWindowStageCreate 40 41onWindowStageCreate(ability: UIAbility, windowStage: window.WindowStage): void; 42 43注册监听应用上下文的生命周期后,在windowStage创建时触发回调。 44 45**系统能力**:SystemCapability.Ability.AbilityRuntime.AbilityCore 46 47**参数:** 48 49 | 参数名 | 类型 | 必填 | 说明 | 50 | -------- | -------- | -------- | -------- | 51 | ability | [UIAbility](js-apis-app-ability-uiAbility.md) | 是 | 当前Ability对象 | 52 | windowStage | [window.WindowStage](js-apis-window.md#windowstage9) | 是 | 当前WindowStage对象 | 53 54**示例:** 55```ts 56let abilityLifecycleCallback = { 57 onWindowStageCreate(ability, windowStage){ 58 console.log('AbilityLifecycleCallback onWindowStageCreate.'); 59 } 60}; 61``` 62 63## AbilityLifecycleCallback.onWindowStageActive 64 65onWindowStageActive(ability: UIAbility, windowStage: window.WindowStage): void; 66 67注册监听应用上下文的生命周期后,在windowStage获焦时触发回调。 68 69**系统能力**:SystemCapability.Ability.AbilityRuntime.AbilityCore 70 71**参数:** 72 73 | 参数名 | 类型 | 必填 | 说明 | 74 | -------- | -------- | -------- | -------- | 75 | ability | [UIAbility](js-apis-app-ability-uiAbility.md) | 是 | 当前Ability对象 | 76 | windowStage | [window.WindowStage](js-apis-window.md#windowstage9) | 是 | 当前WindowStage对象 | 77 78**示例:** 79```ts 80let abilityLifecycleCallback = { 81 onWindowStageActive(ability, windowStage){ 82 console.log('AbilityLifecycleCallback onWindowStageActive.'); 83 } 84}; 85``` 86 87## AbilityLifecycleCallback.onWindowStageInactive 88 89onWindowStageInactive(ability: UIAbility, windowStage: window.WindowStage): void; 90 91注册监听应用上下文的生命周期后,在windowStage失焦时触发回调。 92 93**系统能力**:SystemCapability.Ability.AbilityRuntime.AbilityCore 94 95**参数:** 96 97 | 参数名 | 类型 | 必填 | 说明 | 98 | -------- | -------- | -------- | -------- | 99 | ability | [UIAbility](js-apis-app-ability-uiAbility.md) | 是 | 当前Ability对象 | 100 | windowStage | [window.WindowStage](js-apis-window.md#windowstage9) | 是 | 当前WindowStage对象 | 101 102**示例:** 103```ts 104let abilityLifecycleCallback = { 105 onWindowStageInactive(ability, windowStage){ 106 console.log('AbilityLifecycleCallback onWindowStageInactive.'); 107 } 108}; 109``` 110 111## AbilityLifecycleCallback.onWindowStageDestroy 112 113onWindowStageDestroy(ability: UIAbility, windowStage: window.WindowStage): void; 114 115注册监听应用上下文的生命周期后,在windowStage销毁时触发回调。 116 117**系统能力**:SystemCapability.Ability.AbilityRuntime.AbilityCore 118 119**参数:** 120 121 | 参数名 | 类型 | 必填 | 说明 | 122 | -------- | -------- | -------- | -------- | 123 | ability | [UIAbility](js-apis-app-ability-uiAbility.md) | 是 | 当前Ability对象 | 124 | windowStage | [window.WindowStage](js-apis-window.md#windowstage9) | 是 | 当前WindowStage对象 | 125 126**示例:** 127```ts 128let abilityLifecycleCallback = { 129 onWindowStageDestroy(ability, windowStage){ 130 console.log('AbilityLifecycleCallback onWindowStageDestroy.'); 131 } 132}; 133``` 134 135## AbilityLifecycleCallback.onAbilityDestroy 136 137onAbilityDestroy(ability: UIAbility): void; 138 139注册监听应用上下文的生命周期后,在ability销毁时触发回调。 140 141**系统能力**:SystemCapability.Ability.AbilityRuntime.AbilityCore 142 143**参数:** 144 145 | 参数名 | 类型 | 必填 | 说明 | 146 | -------- | -------- | -------- | -------- | 147 | ability | [UIAbility](js-apis-app-ability-uiAbility.md) | 是 | 当前Ability对象 | 148 149**示例:** 150```ts 151let abilityLifecycleCallback = { 152 onAbilityDestroy(ability){ 153 console.log('AbilityLifecycleCallback onAbilityDestroy.'); 154 } 155}; 156``` 157 158## AbilityLifecycleCallback.onAbilityForeground 159 160onAbilityForeground(ability: UIAbility): void; 161 162注册监听应用上下文的生命周期后,在ability的状态从后台转到前台时触发回调。 163 164**系统能力**:SystemCapability.Ability.AbilityRuntime.AbilityCore 165 166**参数:** 167 168 | 参数名 | 类型 | 必填 | 说明 | 169 | -------- | -------- | -------- | -------- | 170 | ability | [UIAbility](js-apis-app-ability-uiAbility.md) | 是 | 当前Ability对象 | 171 172**示例:** 173```ts 174let abilityLifecycleCallback = { 175 onAbilityForeground(ability){ 176 console.log('AbilityLifecycleCallback onAbilityForeground.'); 177 } 178}; 179``` 180 181## AbilityLifecycleCallback.onAbilityBackground 182 183onAbilityBackground(ability: UIAbility): void; 184 185注册监听应用上下文的生命周期后,在ability的状态从前台转到后台时触发回调。 186 187**系统能力**:SystemCapability.Ability.AbilityRuntime.AbilityCore 188 189**参数:** 190 191 | 参数名 | 类型 | 必填 | 说明 | 192 | -------- | -------- | -------- | -------- | 193 | ability | [UIAbility](js-apis-app-ability-uiAbility.md) | 是 | 当前Ability对象 | 194 195**示例:** 196```ts 197let abilityLifecycleCallback = { 198 onAbilityBackground(ability){ 199 console.log('AbilityLifecycleCallback onAbilityBackground.'); 200 } 201}; 202``` 203 204## AbilityLifecycleCallback.onAbilityContinue 205 206onAbilityContinue(ability: UIAbility): void; 207 208注册监听应用上下文的生命周期后,在ability迁移时触发回调。 209 210**系统能力**:SystemCapability.Ability.AbilityRuntime.AbilityCore 211 212**参数:** 213 214 | 参数名 | 类型 | 必填 | 说明 | 215 | -------- | -------- | -------- | -------- | 216 | ability | [UIAbility](js-apis-app-ability-uiAbility.md) | 是 | 当前Ability对象 | 217 218**示例:** 219```ts 220let abilityLifecycleCallback = { 221 onAbilityContinue(ability){ 222 console.log('AbilityLifecycleCallback onAbilityContinue.'); 223 } 224}; 225``` 226 227## AbilityLifecycleCallback使用 228 229**示例:** 230 231MyFirstAbility.ts 232```ts 233import AbilityLifecycleCallback from '@ohos.app.ability.AbilityLifecycleCallback'; 234import AbilityStage from '@ohos.app.ability.AbilityStage'; 235import UIAbility from '@ohos.app.ability.UIAbility'; 236 237// 声明ability生命周期回调,需配置所有回调后才可以在applicationContext注册 238let abilityLifecycleCallback = { 239 onAbilityCreate(ability){ 240 console.log('AbilityLifecycleCallback onAbilityCreate.'); 241 }, 242 onWindowStageCreate(ability, windowStage){ 243 console.log('AbilityLifecycleCallback onWindowStageCreate.'); 244 }, 245 onWindowStageActive(ability, windowStage){ 246 console.log('AbilityLifecycleCallback onWindowStageActive.'); 247 }, 248 onWindowStageInactive(ability, windowStage){ 249 console.log('AbilityLifecycleCallback onWindowStageInactive.'); 250 }, 251 onWindowStageDestroy(ability, windowStage){ 252 console.log('AbilityLifecycleCallback onWindowStageDestroy.'); 253 }, 254 onAbilityDestroy(ability){ 255 console.log('AbilityLifecycleCallback onAbilityDestroy.'); 256 }, 257 onAbilityForeground(ability){ 258 console.log('AbilityLifecycleCallback onAbilityForeground.'); 259 }, 260 onAbilityBackground(ability){ 261 console.log('AbilityLifecycleCallback onAbilityBackground.'); 262 }, 263 onAbilityContinue(ability){ 264 console.log('AbilityLifecycleCallback onAbilityContinue.'); 265 } 266}; 267 268export default class MyFirstAbility extends UIAbility { 269 onCreate() { 270 console.log('MyAbilityStage onCreate'); 271 // 1.通过context属性获取applicationContext 272 let applicationContext = this.context.getApplicationContext(); 273 // 2.通过applicationContext注册监听应用内生命周期 274 try { 275 globalThis.lifecycleId = applicationContext.on('abilityLifecycle', abilityLifecycleCallback); 276 console.log('registerAbilityLifecycleCallback lifecycleId: ${globalThis.lifecycleId}'); 277 } catch (paramError) { 278 console.log('error: ' + paramError.code + ' ,' + paramError.message); 279 } 280 } 281} 282``` 283 284MySecondAbility.ts 285```ts 286import UIAbility from '@ohos.app.ability.UIAbility'; 287 288export default class MySecondAbility extends UIAbility { 289 onDestroy() { 290 let applicationContext = this.context.getApplicationContext(); 291 // 3.通过applicationContext注销监听应用内生命周期 292 applicationContext.off('abilityLifecycle', globalThis.lifecycleId, (error) => { 293 if (error.code != 0) { 294 console.log('unregisterAbilityLifecycleCallback failed, error: ' + JSON.stringify(error)); 295 } else { 296 console.log('unregisterAbilityLifecycleCallback success.'); 297 } 298 }); 299 } 300} 301```