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