1e41f4b71Sopenharmony_ci# @ohos.app.ability.abilityLifecycleCallback (AbilityLifecycleCallback) 2e41f4b71Sopenharmony_ci 3e41f4b71Sopenharmony_ciThe **AbilityLifecycleCallback** module defines the callbacks to receive lifecycle changes of [ApplicationContext](js-apis-inner-application-applicationContext.md). 4e41f4b71Sopenharmony_ci 5e41f4b71Sopenharmony_ci> **NOTE** 6e41f4b71Sopenharmony_ci> 7e41f4b71Sopenharmony_ci> The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version. 8e41f4b71Sopenharmony_ci> 9e41f4b71Sopenharmony_ci> The APIs of this module can be used only in the stage model. 10e41f4b71Sopenharmony_ci 11e41f4b71Sopenharmony_ci## Modules to Import 12e41f4b71Sopenharmony_ci 13e41f4b71Sopenharmony_ci```ts 14e41f4b71Sopenharmony_ciimport { AbilityLifecycleCallback } from '@kit.AbilityKit'; 15e41f4b71Sopenharmony_ci``` 16e41f4b71Sopenharmony_ci 17e41f4b71Sopenharmony_ci## AbilityLifecycleCallback.onAbilityCreate 18e41f4b71Sopenharmony_ci 19e41f4b71Sopenharmony_cionAbilityCreate(ability: UIAbility): void 20e41f4b71Sopenharmony_ci 21e41f4b71Sopenharmony_ciCalled when an ability is created. 22e41f4b71Sopenharmony_ci 23e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11. 24e41f4b71Sopenharmony_ci 25e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore 26e41f4b71Sopenharmony_ci 27e41f4b71Sopenharmony_ci**Parameters** 28e41f4b71Sopenharmony_ci 29e41f4b71Sopenharmony_ci | Name| Type| Mandatory| Description| 30e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 31e41f4b71Sopenharmony_ci | ability | [UIAbility](js-apis-app-ability-uiAbility.md) | Yes| **Ability** object.| 32e41f4b71Sopenharmony_ci 33e41f4b71Sopenharmony_ci**Example** 34e41f4b71Sopenharmony_ci 35e41f4b71Sopenharmony_ciSee [Usage of AbilityLifecycleCallback](#usage-of-abilitylifecyclecallback). 36e41f4b71Sopenharmony_ci 37e41f4b71Sopenharmony_ci## AbilityLifecycleCallback.onWindowStageCreate 38e41f4b71Sopenharmony_ci 39e41f4b71Sopenharmony_cionWindowStageCreate(ability: UIAbility, windowStage: window.WindowStage): void 40e41f4b71Sopenharmony_ci 41e41f4b71Sopenharmony_ciCalled when the window stage of an ability is created. 42e41f4b71Sopenharmony_ci 43e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11. 44e41f4b71Sopenharmony_ci 45e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore 46e41f4b71Sopenharmony_ci 47e41f4b71Sopenharmony_ci**Parameters** 48e41f4b71Sopenharmony_ci 49e41f4b71Sopenharmony_ci | Name| Type| Mandatory| Description| 50e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 51e41f4b71Sopenharmony_ci | ability | [UIAbility](js-apis-app-ability-uiAbility.md) | Yes| **Ability** object.| 52e41f4b71Sopenharmony_ci | windowStage | [window.WindowStage](../apis-arkui/js-apis-window.md#windowstage9) | Yes| **WindowStage** object.| 53e41f4b71Sopenharmony_ci 54e41f4b71Sopenharmony_ci**Example** 55e41f4b71Sopenharmony_ci 56e41f4b71Sopenharmony_ciSee [Usage of AbilityLifecycleCallback](#usage-of-abilitylifecyclecallback). 57e41f4b71Sopenharmony_ci 58e41f4b71Sopenharmony_ci## AbilityLifecycleCallback.onWindowStageActive 59e41f4b71Sopenharmony_ci 60e41f4b71Sopenharmony_cionWindowStageActive(ability: UIAbility, windowStage: window.WindowStage): void 61e41f4b71Sopenharmony_ci 62e41f4b71Sopenharmony_ciCalled when the window stage of an ability gains focus. 63e41f4b71Sopenharmony_ci 64e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11. 65e41f4b71Sopenharmony_ci 66e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore 67e41f4b71Sopenharmony_ci 68e41f4b71Sopenharmony_ci**Parameters** 69e41f4b71Sopenharmony_ci 70e41f4b71Sopenharmony_ci | Name| Type| Mandatory| Description| 71e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 72e41f4b71Sopenharmony_ci | ability | [UIAbility](js-apis-app-ability-uiAbility.md) | Yes| **Ability** object.| 73e41f4b71Sopenharmony_ci | windowStage | [window.WindowStage](../apis-arkui/js-apis-window.md#windowstage9) | Yes| **WindowStage** object.| 74e41f4b71Sopenharmony_ci 75e41f4b71Sopenharmony_ci**Example** 76e41f4b71Sopenharmony_ci 77e41f4b71Sopenharmony_ciSee [Usage of AbilityLifecycleCallback](#usage-of-abilitylifecyclecallback). 78e41f4b71Sopenharmony_ci 79e41f4b71Sopenharmony_ci## AbilityLifecycleCallback.onWindowStageInactive 80e41f4b71Sopenharmony_ci 81e41f4b71Sopenharmony_cionWindowStageInactive(ability: UIAbility, windowStage: window.WindowStage): void 82e41f4b71Sopenharmony_ci 83e41f4b71Sopenharmony_ciCalled when the window stage of an ability loses focus. 84e41f4b71Sopenharmony_ci 85e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11. 86e41f4b71Sopenharmony_ci 87e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore 88e41f4b71Sopenharmony_ci 89e41f4b71Sopenharmony_ci**Parameters** 90e41f4b71Sopenharmony_ci 91e41f4b71Sopenharmony_ci | Name| Type| Mandatory| Description| 92e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 93e41f4b71Sopenharmony_ci | ability | [UIAbility](js-apis-app-ability-uiAbility.md) | Yes| **Ability** object.| 94e41f4b71Sopenharmony_ci | windowStage | [window.WindowStage](../apis-arkui/js-apis-window.md#windowstage9) | Yes| **WindowStage** object.| 95e41f4b71Sopenharmony_ci 96e41f4b71Sopenharmony_ci**Example** 97e41f4b71Sopenharmony_ci 98e41f4b71Sopenharmony_ciSee [Usage of AbilityLifecycleCallback](#usage-of-abilitylifecyclecallback). 99e41f4b71Sopenharmony_ci 100e41f4b71Sopenharmony_ci## AbilityLifecycleCallback.onWindowStageDestroy 101e41f4b71Sopenharmony_ci 102e41f4b71Sopenharmony_cionWindowStageDestroy(ability: UIAbility, windowStage: window.WindowStage): void 103e41f4b71Sopenharmony_ci 104e41f4b71Sopenharmony_ciCalled when the window stage of an ability is destroyed. 105e41f4b71Sopenharmony_ci 106e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11. 107e41f4b71Sopenharmony_ci 108e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore 109e41f4b71Sopenharmony_ci 110e41f4b71Sopenharmony_ci**Parameters** 111e41f4b71Sopenharmony_ci 112e41f4b71Sopenharmony_ci | Name| Type| Mandatory| Description| 113e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 114e41f4b71Sopenharmony_ci | ability | [UIAbility](js-apis-app-ability-uiAbility.md) | Yes| **Ability** object.| 115e41f4b71Sopenharmony_ci | windowStage | [window.WindowStage](../apis-arkui/js-apis-window.md#windowstage9) | Yes| **WindowStage** object.| 116e41f4b71Sopenharmony_ci 117e41f4b71Sopenharmony_ci**Example** 118e41f4b71Sopenharmony_ci 119e41f4b71Sopenharmony_ciSee [Usage of AbilityLifecycleCallback](#usage-of-abilitylifecyclecallback). 120e41f4b71Sopenharmony_ci 121e41f4b71Sopenharmony_ci## AbilityLifecycleCallback.onAbilityDestroy 122e41f4b71Sopenharmony_ci 123e41f4b71Sopenharmony_cionAbilityDestroy(ability: UIAbility): void 124e41f4b71Sopenharmony_ci 125e41f4b71Sopenharmony_ciCalled when an ability is destroyed. 126e41f4b71Sopenharmony_ci 127e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11. 128e41f4b71Sopenharmony_ci 129e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore 130e41f4b71Sopenharmony_ci 131e41f4b71Sopenharmony_ci**Parameters** 132e41f4b71Sopenharmony_ci 133e41f4b71Sopenharmony_ci | Name| Type| Mandatory| Description| 134e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 135e41f4b71Sopenharmony_ci | ability | [UIAbility](js-apis-app-ability-uiAbility.md) | Yes| **Ability** object.| 136e41f4b71Sopenharmony_ci 137e41f4b71Sopenharmony_ci**Example** 138e41f4b71Sopenharmony_ci 139e41f4b71Sopenharmony_ciSee [Usage of AbilityLifecycleCallback](#usage-of-abilitylifecyclecallback). 140e41f4b71Sopenharmony_ci 141e41f4b71Sopenharmony_ci## AbilityLifecycleCallback.onAbilityForeground 142e41f4b71Sopenharmony_ci 143e41f4b71Sopenharmony_cionAbilityForeground(ability: UIAbility): void 144e41f4b71Sopenharmony_ci 145e41f4b71Sopenharmony_ciCalled when an ability is switched from the background to the foreground. 146e41f4b71Sopenharmony_ci 147e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11. 148e41f4b71Sopenharmony_ci 149e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore 150e41f4b71Sopenharmony_ci 151e41f4b71Sopenharmony_ci**Parameters** 152e41f4b71Sopenharmony_ci 153e41f4b71Sopenharmony_ci | Name| Type| Mandatory| Description| 154e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 155e41f4b71Sopenharmony_ci | ability | [UIAbility](js-apis-app-ability-uiAbility.md) | Yes| **Ability** object.| 156e41f4b71Sopenharmony_ci 157e41f4b71Sopenharmony_ci**Example** 158e41f4b71Sopenharmony_ci 159e41f4b71Sopenharmony_ciSee [Usage of AbilityLifecycleCallback](#usage-of-abilitylifecyclecallback). 160e41f4b71Sopenharmony_ci 161e41f4b71Sopenharmony_ci## AbilityLifecycleCallback.onAbilityBackground 162e41f4b71Sopenharmony_ci 163e41f4b71Sopenharmony_cionAbilityBackground(ability: UIAbility): void 164e41f4b71Sopenharmony_ci 165e41f4b71Sopenharmony_ciCalled when an ability is switched from the foreground to the background. 166e41f4b71Sopenharmony_ci 167e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11. 168e41f4b71Sopenharmony_ci 169e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore 170e41f4b71Sopenharmony_ci 171e41f4b71Sopenharmony_ci**Parameters** 172e41f4b71Sopenharmony_ci 173e41f4b71Sopenharmony_ci | Name| Type| Mandatory| Description| 174e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 175e41f4b71Sopenharmony_ci | ability | [UIAbility](js-apis-app-ability-uiAbility.md) | Yes| **Ability** object.| 176e41f4b71Sopenharmony_ci 177e41f4b71Sopenharmony_ci**Example** 178e41f4b71Sopenharmony_ci 179e41f4b71Sopenharmony_ciSee [Usage of AbilityLifecycleCallback](#usage-of-abilitylifecyclecallback). 180e41f4b71Sopenharmony_ci 181e41f4b71Sopenharmony_ci## AbilityLifecycleCallback.onAbilityContinue 182e41f4b71Sopenharmony_ci 183e41f4b71Sopenharmony_cionAbilityContinue(ability: UIAbility): void 184e41f4b71Sopenharmony_ci 185e41f4b71Sopenharmony_ciCalled when an ability is continued on another device. 186e41f4b71Sopenharmony_ci 187e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11. 188e41f4b71Sopenharmony_ci 189e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore 190e41f4b71Sopenharmony_ci 191e41f4b71Sopenharmony_ci**Parameters** 192e41f4b71Sopenharmony_ci 193e41f4b71Sopenharmony_ci | Name| Type| Mandatory| Description| 194e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 195e41f4b71Sopenharmony_ci | ability | [UIAbility](js-apis-app-ability-uiAbility.md) | Yes| **Ability** object.| 196e41f4b71Sopenharmony_ci 197e41f4b71Sopenharmony_ci**Example** 198e41f4b71Sopenharmony_ci 199e41f4b71Sopenharmony_ciSee [Usage of AbilityLifecycleCallback](#usage-of-abilitylifecyclecallback). 200e41f4b71Sopenharmony_ci 201e41f4b71Sopenharmony_ci## AbilityLifecycleCallback.onAbilityWillCreate<sup>12+</sup> 202e41f4b71Sopenharmony_ci 203e41f4b71Sopenharmony_cionAbilityWillCreate?(ability: UIAbility): void 204e41f4b71Sopenharmony_ci 205e41f4b71Sopenharmony_ciCalled before the [onCreate](js-apis-app-ability-uiAbility.md#uiabilityoncreate) callback of the UIAbility is triggered. 206e41f4b71Sopenharmony_ci 207e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 12. 208e41f4b71Sopenharmony_ci 209e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore 210e41f4b71Sopenharmony_ci 211e41f4b71Sopenharmony_ci**Parameters** 212e41f4b71Sopenharmony_ci 213e41f4b71Sopenharmony_ci | Name| Type| Mandatory| Description| 214e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 215e41f4b71Sopenharmony_ci | ability | [UIAbility](js-apis-app-ability-uiAbility.md) | Yes| **Ability** object.| 216e41f4b71Sopenharmony_ci 217e41f4b71Sopenharmony_ci**Example** 218e41f4b71Sopenharmony_ci 219e41f4b71Sopenharmony_ciSee [Usage of AbilityLifecycleCallback](#usage-of-abilitylifecyclecallback). 220e41f4b71Sopenharmony_ci 221e41f4b71Sopenharmony_ci## AbilityLifecycleCallback.onWindowStageWillCreate<sup>12+</sup> 222e41f4b71Sopenharmony_ci 223e41f4b71Sopenharmony_cionWindowStageWillCreate?(ability: UIAbility, windowStage: window.WindowStage): void 224e41f4b71Sopenharmony_ci 225e41f4b71Sopenharmony_ciCalled before the [onWindowStageCreate](js-apis-app-ability-uiAbility.md#uiabilityonwindowstagecreate) callback of the UIAbility is triggered. 226e41f4b71Sopenharmony_ci 227e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 12. 228e41f4b71Sopenharmony_ci 229e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore 230e41f4b71Sopenharmony_ci 231e41f4b71Sopenharmony_ci**Parameters** 232e41f4b71Sopenharmony_ci 233e41f4b71Sopenharmony_ci | Name| Type| Mandatory| Description| 234e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 235e41f4b71Sopenharmony_ci | ability | [UIAbility](js-apis-app-ability-uiAbility.md) | Yes| **Ability** object.| 236e41f4b71Sopenharmony_ci | windowStage | [window.WindowStage](../apis-arkui/js-apis-window.md#windowstage9) | Yes| **WindowStage** object.| 237e41f4b71Sopenharmony_ci 238e41f4b71Sopenharmony_ci**Example** 239e41f4b71Sopenharmony_ci 240e41f4b71Sopenharmony_ciSee [Usage of AbilityLifecycleCallback](#usage-of-abilitylifecyclecallback). 241e41f4b71Sopenharmony_ci 242e41f4b71Sopenharmony_ci## AbilityLifecycleCallback.onWindowStageWillDestroy<sup>12+</sup> 243e41f4b71Sopenharmony_ci 244e41f4b71Sopenharmony_cionWindowStageWillDestroy?(ability: UIAbility, windowStage: window.WindowStage): void 245e41f4b71Sopenharmony_ci 246e41f4b71Sopenharmony_ciCalled before the [onWindowStageDestroy](js-apis-app-ability-uiAbility.md#uiabilityonwindowstagedestroy) callback of the UIAbility is triggered. 247e41f4b71Sopenharmony_ci 248e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 12. 249e41f4b71Sopenharmony_ci 250e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore 251e41f4b71Sopenharmony_ci 252e41f4b71Sopenharmony_ci**Parameters** 253e41f4b71Sopenharmony_ci 254e41f4b71Sopenharmony_ci | Name| Type| Mandatory| Description| 255e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 256e41f4b71Sopenharmony_ci | ability | [UIAbility](js-apis-app-ability-uiAbility.md) | Yes| **Ability** object.| 257e41f4b71Sopenharmony_ci | windowStage | [window.WindowStage](../apis-arkui/js-apis-window.md#windowstage9) | Yes| **WindowStage** object.| 258e41f4b71Sopenharmony_ci 259e41f4b71Sopenharmony_ci**Example** 260e41f4b71Sopenharmony_ci 261e41f4b71Sopenharmony_ciSee [Usage of AbilityLifecycleCallback](#usage-of-abilitylifecyclecallback). 262e41f4b71Sopenharmony_ci 263e41f4b71Sopenharmony_ci## AbilityLifecycleCallback.onAbilityWillForeground<sup>12+</sup> 264e41f4b71Sopenharmony_ci 265e41f4b71Sopenharmony_cionAbilityWillForeground?(ability: UIAbility): void 266e41f4b71Sopenharmony_ci 267e41f4b71Sopenharmony_ciCalled before the [onForeground](js-apis-app-ability-uiAbility.md#uiabilityonforeground) callback of the UIAbility is triggered. 268e41f4b71Sopenharmony_ci 269e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 12. 270e41f4b71Sopenharmony_ci 271e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore 272e41f4b71Sopenharmony_ci 273e41f4b71Sopenharmony_ci**Parameters** 274e41f4b71Sopenharmony_ci 275e41f4b71Sopenharmony_ci | Name| Type| Mandatory| Description| 276e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 277e41f4b71Sopenharmony_ci | ability | [UIAbility](js-apis-app-ability-uiAbility.md) | Yes| **Ability** object.| 278e41f4b71Sopenharmony_ci 279e41f4b71Sopenharmony_ci**Example** 280e41f4b71Sopenharmony_ci 281e41f4b71Sopenharmony_ciSee [Usage of AbilityLifecycleCallback](#usage-of-abilitylifecyclecallback). 282e41f4b71Sopenharmony_ci 283e41f4b71Sopenharmony_ci## AbilityLifecycleCallback.onAbilityWillDestroy<sup>12+</sup> 284e41f4b71Sopenharmony_ci 285e41f4b71Sopenharmony_cionAbilityWillDestroy?(ability: UIAbility): void 286e41f4b71Sopenharmony_ci 287e41f4b71Sopenharmony_ciCalled before the [onDestroy](js-apis-app-ability-uiAbility.md#uiabilityondestroy) callback of the UIAbility is triggered. 288e41f4b71Sopenharmony_ci 289e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 12. 290e41f4b71Sopenharmony_ci 291e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore 292e41f4b71Sopenharmony_ci 293e41f4b71Sopenharmony_ci**Parameters** 294e41f4b71Sopenharmony_ci 295e41f4b71Sopenharmony_ci | Name| Type| Mandatory| Description| 296e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 297e41f4b71Sopenharmony_ci | ability | [UIAbility](js-apis-app-ability-uiAbility.md) | Yes| **Ability** object.| 298e41f4b71Sopenharmony_ci 299e41f4b71Sopenharmony_ci**Example** 300e41f4b71Sopenharmony_ci 301e41f4b71Sopenharmony_ciSee [Usage of AbilityLifecycleCallback](#usage-of-abilitylifecyclecallback). 302e41f4b71Sopenharmony_ci 303e41f4b71Sopenharmony_ci## AbilityLifecycleCallback.onAbilityWillBackground<sup>12+</sup> 304e41f4b71Sopenharmony_ci 305e41f4b71Sopenharmony_cionAbilityWillBackground?(ability: UIAbility): void 306e41f4b71Sopenharmony_ci 307e41f4b71Sopenharmony_ciCalled before the [onBackground](js-apis-app-ability-uiAbility.md#uiabilityonbackground) callback of the UIAbility is triggered. 308e41f4b71Sopenharmony_ci 309e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 12. 310e41f4b71Sopenharmony_ci 311e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore 312e41f4b71Sopenharmony_ci 313e41f4b71Sopenharmony_ci**Parameters** 314e41f4b71Sopenharmony_ci 315e41f4b71Sopenharmony_ci | Name| Type| Mandatory| Description| 316e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 317e41f4b71Sopenharmony_ci | ability | [UIAbility](js-apis-app-ability-uiAbility.md) | Yes| **Ability** object.| 318e41f4b71Sopenharmony_ci 319e41f4b71Sopenharmony_ci**Example** 320e41f4b71Sopenharmony_ci 321e41f4b71Sopenharmony_ciSee [Usage of AbilityLifecycleCallback](#usage-of-abilitylifecyclecallback). 322e41f4b71Sopenharmony_ci 323e41f4b71Sopenharmony_ci## AbilityLifecycleCallback.onWillNewWant<sup>12+</sup> 324e41f4b71Sopenharmony_ci 325e41f4b71Sopenharmony_cionWillNewWant?(ability: UIAbility): void 326e41f4b71Sopenharmony_ci 327e41f4b71Sopenharmony_ciCalled before the [onNewWant](js-apis-app-ability-uiAbility.md#uiabilityonnewwant) callback of the UIAbility is triggered. 328e41f4b71Sopenharmony_ci 329e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 12. 330e41f4b71Sopenharmony_ci 331e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore 332e41f4b71Sopenharmony_ci 333e41f4b71Sopenharmony_ci**Parameters** 334e41f4b71Sopenharmony_ci 335e41f4b71Sopenharmony_ci | Name| Type| Mandatory| Description| 336e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 337e41f4b71Sopenharmony_ci | ability | [UIAbility](js-apis-app-ability-uiAbility.md) | Yes| **Ability** object.| 338e41f4b71Sopenharmony_ci 339e41f4b71Sopenharmony_ci**Example** 340e41f4b71Sopenharmony_ci 341e41f4b71Sopenharmony_ciSee [Usage of AbilityLifecycleCallback](#usage-of-abilitylifecyclecallback). 342e41f4b71Sopenharmony_ci 343e41f4b71Sopenharmony_ci## AbilityLifecycleCallback.onNewWant<sup>12+</sup> 344e41f4b71Sopenharmony_ci 345e41f4b71Sopenharmony_cionNewWant?(ability: UIAbility): void 346e41f4b71Sopenharmony_ci 347e41f4b71Sopenharmony_ciCalled after the [onNewWant](js-apis-app-ability-uiAbility.md#uiabilityonnewwant) callback of the UIAbility is triggered. 348e41f4b71Sopenharmony_ci 349e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 12. 350e41f4b71Sopenharmony_ci 351e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore 352e41f4b71Sopenharmony_ci 353e41f4b71Sopenharmony_ci**Parameters** 354e41f4b71Sopenharmony_ci 355e41f4b71Sopenharmony_ci | Name| Type| Mandatory| Description| 356e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 357e41f4b71Sopenharmony_ci | ability | [UIAbility](js-apis-app-ability-uiAbility.md) | Yes| **Ability** object.| 358e41f4b71Sopenharmony_ci 359e41f4b71Sopenharmony_ci**Example** 360e41f4b71Sopenharmony_ci 361e41f4b71Sopenharmony_ciSee [Usage of AbilityLifecycleCallback](#usage-of-abilitylifecyclecallback). 362e41f4b71Sopenharmony_ci 363e41f4b71Sopenharmony_ci## AbilityLifecycleCallback.onAbilityWillContinue<sup>12+</sup> 364e41f4b71Sopenharmony_ci 365e41f4b71Sopenharmony_cionAbilityWillContinue?(ability: UIAbility): void 366e41f4b71Sopenharmony_ci 367e41f4b71Sopenharmony_ciCalled before the [onContinue](js-apis-app-ability-uiAbility.md#uiabilityoncontinue) callback of the UIAbility is triggered. 368e41f4b71Sopenharmony_ci 369e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 12. 370e41f4b71Sopenharmony_ci 371e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore 372e41f4b71Sopenharmony_ci 373e41f4b71Sopenharmony_ci**Parameters** 374e41f4b71Sopenharmony_ci 375e41f4b71Sopenharmony_ci | Name| Type| Mandatory| Description| 376e41f4b71Sopenharmony_ci | ------ | ------ | ------ | ------ | 377e41f4b71Sopenharmony_ci | ability | [UIAbility](js-apis-app-ability-uiAbility.md) | Yes| **Ability** object.| 378e41f4b71Sopenharmony_ci 379e41f4b71Sopenharmony_ci**Example** 380e41f4b71Sopenharmony_ci 381e41f4b71Sopenharmony_ciSee [Usage of AbilityLifecycleCallback](#usage-of-abilitylifecyclecallback). 382e41f4b71Sopenharmony_ci 383e41f4b71Sopenharmony_ci## AbilityLifecycleCallback.onWindowStageWillRestore<sup>12+</sup> 384e41f4b71Sopenharmony_ci 385e41f4b71Sopenharmony_cionWindowStageWillRestore?(ability: UIAbility, windowStage: window.WindowStage): void 386e41f4b71Sopenharmony_ci 387e41f4b71Sopenharmony_ciCalled before the [onWindowStageRestore](js-apis-app-ability-uiAbility.md#uiabilityonwindowstagerestore) callback of the UIAbility is triggered. 388e41f4b71Sopenharmony_ci 389e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 12. 390e41f4b71Sopenharmony_ci 391e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore 392e41f4b71Sopenharmony_ci 393e41f4b71Sopenharmony_ci**Parameters** 394e41f4b71Sopenharmony_ci 395e41f4b71Sopenharmony_ci | Name| Type| Mandatory| Description| 396e41f4b71Sopenharmony_ci | ------ | ------ | ------ | ------ | 397e41f4b71Sopenharmony_ci | ability | [UIAbility](js-apis-app-ability-uiAbility.md) | Yes| **Ability** object.| 398e41f4b71Sopenharmony_ci | windowStage | [window.WindowStage](../apis-arkui/js-apis-window.md#windowstage9) | Yes| **WindowStage** object.| 399e41f4b71Sopenharmony_ci 400e41f4b71Sopenharmony_ci**Example** 401e41f4b71Sopenharmony_ci 402e41f4b71Sopenharmony_ciSee [Usage of AbilityLifecycleCallback](#usage-of-abilitylifecyclecallback). 403e41f4b71Sopenharmony_ci 404e41f4b71Sopenharmony_ci## AbilityLifecycleCallback.onWindowStageRestore<sup>12+</sup> 405e41f4b71Sopenharmony_ci 406e41f4b71Sopenharmony_cionWindowStageRestore?(ability: UIAbility, windowStage: window.WindowStage): void 407e41f4b71Sopenharmony_ci 408e41f4b71Sopenharmony_ciCalled after the [onWindowStageRestore](js-apis-app-ability-uiAbility.md#uiabilityonwindowstagerestore) callback of the UIAbility is triggered. 409e41f4b71Sopenharmony_ci 410e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 12. 411e41f4b71Sopenharmony_ci 412e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore 413e41f4b71Sopenharmony_ci 414e41f4b71Sopenharmony_ci**Parameters** 415e41f4b71Sopenharmony_ci 416e41f4b71Sopenharmony_ci | Name| Type| Mandatory| Description| 417e41f4b71Sopenharmony_ci | ------ | ------ | ------ | ------ | 418e41f4b71Sopenharmony_ci | ability | [UIAbility](js-apis-app-ability-uiAbility.md) | Yes| **Ability** object.| 419e41f4b71Sopenharmony_ci | windowStage | [window.WindowStage](../apis-arkui/js-apis-window.md#windowstage9) | Yes| **WindowStage** object.| 420e41f4b71Sopenharmony_ci 421e41f4b71Sopenharmony_ci**Example** 422e41f4b71Sopenharmony_ci 423e41f4b71Sopenharmony_ciSee [Usage of AbilityLifecycleCallback](#usage-of-abilitylifecyclecallback). 424e41f4b71Sopenharmony_ci 425e41f4b71Sopenharmony_ci## AbilityLifecycleCallback.onAbilityWillSaveState<sup>12+</sup> 426e41f4b71Sopenharmony_ci 427e41f4b71Sopenharmony_cionAbilityWillSaveState?(ability: UIAbility): void 428e41f4b71Sopenharmony_ci 429e41f4b71Sopenharmony_ciCalled before the [onSaveState](js-apis-app-ability-uiAbility.md#uiabilityonsavestate) callback of the UIAbility is triggered. 430e41f4b71Sopenharmony_ci 431e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 12. 432e41f4b71Sopenharmony_ci 433e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore 434e41f4b71Sopenharmony_ci 435e41f4b71Sopenharmony_ci**Parameters** 436e41f4b71Sopenharmony_ci 437e41f4b71Sopenharmony_ci | Name| Type| Mandatory| Description| 438e41f4b71Sopenharmony_ci | ------ | ------ | ------ | ------ | 439e41f4b71Sopenharmony_ci | ability | [UIAbility](js-apis-app-ability-uiAbility.md) | Yes| **Ability** object.| 440e41f4b71Sopenharmony_ci 441e41f4b71Sopenharmony_ci**Example** 442e41f4b71Sopenharmony_ci 443e41f4b71Sopenharmony_ciSee [Usage of AbilityLifecycleCallback](#usage-of-abilitylifecyclecallback). 444e41f4b71Sopenharmony_ci 445e41f4b71Sopenharmony_ci## AbilityLifecycleCallback.onAbilitySaveState<sup>12+</sup> 446e41f4b71Sopenharmony_ci 447e41f4b71Sopenharmony_cionAbilitySaveState?(ability: UIAbility): void 448e41f4b71Sopenharmony_ci 449e41f4b71Sopenharmony_ciCalled after the [onSaveState](js-apis-app-ability-uiAbility.md#uiabilityonsavestate) callback of the UIAbility is triggered. 450e41f4b71Sopenharmony_ci 451e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 12. 452e41f4b71Sopenharmony_ci 453e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore 454e41f4b71Sopenharmony_ci 455e41f4b71Sopenharmony_ci**Parameters** 456e41f4b71Sopenharmony_ci 457e41f4b71Sopenharmony_ci | Name| Type| Mandatory| Description| 458e41f4b71Sopenharmony_ci | ------ | ------ | ------ | ------ | 459e41f4b71Sopenharmony_ci | ability | [UIAbility](js-apis-app-ability-uiAbility.md) | Yes| **Ability** object.| 460e41f4b71Sopenharmony_ci 461e41f4b71Sopenharmony_ci**Example** 462e41f4b71Sopenharmony_ci 463e41f4b71Sopenharmony_ciSee [Usage of AbilityLifecycleCallback](#usage-of-abilitylifecyclecallback). 464e41f4b71Sopenharmony_ci 465e41f4b71Sopenharmony_ci## Usage of AbilityLifecycleCallback 466e41f4b71Sopenharmony_ci 467e41f4b71Sopenharmony_ci**Example** 468e41f4b71Sopenharmony_ciGlobalContext.ts 469e41f4b71Sopenharmony_ciGlobal context 470e41f4b71Sopenharmony_ci```ts 471e41f4b71Sopenharmony_ci// Construct a singleton object. 472e41f4b71Sopenharmony_ciexport class GlobalContext { 473e41f4b71Sopenharmony_ci private constructor() {} 474e41f4b71Sopenharmony_ci private static instance: GlobalContext; 475e41f4b71Sopenharmony_ci private _objects = new Map<string, Object>(); 476e41f4b71Sopenharmony_ci 477e41f4b71Sopenharmony_ci public static getContext(): GlobalContext { 478e41f4b71Sopenharmony_ci if (!GlobalContext.instance) { 479e41f4b71Sopenharmony_ci GlobalContext.instance = new GlobalContext(); 480e41f4b71Sopenharmony_ci } 481e41f4b71Sopenharmony_ci return GlobalContext.instance; 482e41f4b71Sopenharmony_ci } 483e41f4b71Sopenharmony_ci 484e41f4b71Sopenharmony_ci getObject(value: string): Object | undefined { 485e41f4b71Sopenharmony_ci return this._objects.get(value); 486e41f4b71Sopenharmony_ci } 487e41f4b71Sopenharmony_ci 488e41f4b71Sopenharmony_ci setObject(key: string, objectClass: Object): void { 489e41f4b71Sopenharmony_ci this._objects.set(key, objectClass); 490e41f4b71Sopenharmony_ci } 491e41f4b71Sopenharmony_ci} 492e41f4b71Sopenharmony_ci``` 493e41f4b71Sopenharmony_ci 494e41f4b71Sopenharmony_ciMyFirstAbility.ts 495e41f4b71Sopenharmony_ciFirst ability of the application 496e41f4b71Sopenharmony_ci```ts 497e41f4b71Sopenharmony_ciimport { AbilityLifecycleCallback, UIAbility } from '@kit.AbilityKit'; 498e41f4b71Sopenharmony_ciimport { window } from '@kit.ArkUI'; 499e41f4b71Sopenharmony_ci 500e41f4b71Sopenharmony_ci// Import GlobalContext. Use the actual path declared. 501e41f4b71Sopenharmony_ciimport { GlobalContext } from '../GlobalContext' 502e41f4b71Sopenharmony_ci 503e41f4b71Sopenharmony_ci// Declare the ability lifecycle callbacks. A listener can be registered in applicationContext only after all the callbacks are configured. 504e41f4b71Sopenharmony_cilet abilityLifecycleCallback: AbilityLifecycleCallback = { 505e41f4b71Sopenharmony_ci onAbilityCreate(ability){ 506e41f4b71Sopenharmony_ci console.log('AbilityLifecycleCallback onAbilityCreate.'); 507e41f4b71Sopenharmony_ci }, 508e41f4b71Sopenharmony_ci onWindowStageCreate(ability, windowStage){ 509e41f4b71Sopenharmony_ci console.log('AbilityLifecycleCallback onWindowStageCreate.'); 510e41f4b71Sopenharmony_ci }, 511e41f4b71Sopenharmony_ci onWindowStageActive(ability, windowStage){ 512e41f4b71Sopenharmony_ci console.log('AbilityLifecycleCallback onWindowStageActive.'); 513e41f4b71Sopenharmony_ci }, 514e41f4b71Sopenharmony_ci onWindowStageInactive(ability, windowStage){ 515e41f4b71Sopenharmony_ci console.log('AbilityLifecycleCallback onWindowStageInactive.'); 516e41f4b71Sopenharmony_ci }, 517e41f4b71Sopenharmony_ci onWindowStageDestroy(ability, windowStage){ 518e41f4b71Sopenharmony_ci console.log('AbilityLifecycleCallback onWindowStageDestroy.'); 519e41f4b71Sopenharmony_ci }, 520e41f4b71Sopenharmony_ci onAbilityDestroy(ability){ 521e41f4b71Sopenharmony_ci console.log('AbilityLifecycleCallback onAbilityDestroy.'); 522e41f4b71Sopenharmony_ci }, 523e41f4b71Sopenharmony_ci onAbilityForeground(ability){ 524e41f4b71Sopenharmony_ci console.log('AbilityLifecycleCallback onAbilityForeground.'); 525e41f4b71Sopenharmony_ci }, 526e41f4b71Sopenharmony_ci onAbilityBackground(ability){ 527e41f4b71Sopenharmony_ci console.log('AbilityLifecycleCallback onAbilityBackground.'); 528e41f4b71Sopenharmony_ci }, 529e41f4b71Sopenharmony_ci onAbilityContinue(ability){ 530e41f4b71Sopenharmony_ci console.log('AbilityLifecycleCallback onAbilityContinue.'); 531e41f4b71Sopenharmony_ci }, 532e41f4b71Sopenharmony_ci onNewWant(ability) { 533e41f4b71Sopenharmony_ci console.log('AbilityLifecycleCallback onNewWant'); 534e41f4b71Sopenharmony_ci }, 535e41f4b71Sopenharmony_ci onWillNewWant(ability) { 536e41f4b71Sopenharmony_ci console.log('AbilityLifecycleCallback onWillNewWant'); 537e41f4b71Sopenharmony_ci }, 538e41f4b71Sopenharmony_ci onAbilityWillCreate(ability) { 539e41f4b71Sopenharmony_ci console.log('AbilityLifecycleCallback onAbilityWillCreate'); 540e41f4b71Sopenharmony_ci }, 541e41f4b71Sopenharmony_ci onWindowStageWillCreate(ability, windowStage) { 542e41f4b71Sopenharmony_ci console.log('AbilityLifecycleCallback onWindowStageWillCreate'); 543e41f4b71Sopenharmony_ci }, 544e41f4b71Sopenharmony_ci onWindowStageWillDestroy(ability, windowStage) { 545e41f4b71Sopenharmony_ci console.log('AbilityLifecycleCallback onWindowStageWillDestroy'); 546e41f4b71Sopenharmony_ci }, 547e41f4b71Sopenharmony_ci onAbilityWillDestroy(ability) { 548e41f4b71Sopenharmony_ci console.log('AbilityLifecycleCallback onAbilityWillDestroy'); 549e41f4b71Sopenharmony_ci }, 550e41f4b71Sopenharmony_ci onAbilityWillForeground(ability) { 551e41f4b71Sopenharmony_ci console.log('AbilityLifecycleCallback onAbilityWillForeground'); 552e41f4b71Sopenharmony_ci }, 553e41f4b71Sopenharmony_ci onAbilityWillBackground(ability) { 554e41f4b71Sopenharmony_ci console.log('AbilityLifecycleCallback onAbilityWillBackground'); 555e41f4b71Sopenharmony_ci }, 556e41f4b71Sopenharmony_ci onAbilityWillContinue(ability: UIAbility) { 557e41f4b71Sopenharmony_ci console.log('AbilityLifecycleCallback onAbilityWillContinue.'); 558e41f4b71Sopenharmony_ci }, 559e41f4b71Sopenharmony_ci onWindowStageWillRestore(ability: UIAbility, windowStage: window.WindowStage) { 560e41f4b71Sopenharmony_ci console.log('AbilityLifecycleCallback onWindowStageWillRestore.'); 561e41f4b71Sopenharmony_ci }, 562e41f4b71Sopenharmony_ci onWindowStageRestore(ability: UIAbility, windowStage: window.WindowStage) { 563e41f4b71Sopenharmony_ci console.log('AbilityLifecycleCallback onWindowStageRestore.'); 564e41f4b71Sopenharmony_ci }, 565e41f4b71Sopenharmony_ci onAbilityWillSaveState(ability: UIAbility) { 566e41f4b71Sopenharmony_ci console.log('AbilityLifecycleCallback onAbilityWillSaveState.'); 567e41f4b71Sopenharmony_ci }, 568e41f4b71Sopenharmony_ci onAbilitySaveState(ability: UIAbility) { 569e41f4b71Sopenharmony_ci console.log('AbilityLifecycleCallback onAbilitySaveState.'); 570e41f4b71Sopenharmony_ci } 571e41f4b71Sopenharmony_ci}; 572e41f4b71Sopenharmony_ci 573e41f4b71Sopenharmony_ciexport default class MyFirstAbility extends UIAbility { 574e41f4b71Sopenharmony_ci onCreate() { 575e41f4b71Sopenharmony_ci console.log('MyAbilityStage onCreate'); 576e41f4b71Sopenharmony_ci // 1. Obtain applicationContext through the context property. 577e41f4b71Sopenharmony_ci let applicationContext = this.context.getApplicationContext(); 578e41f4b71Sopenharmony_ci // 2. Register the listener for the ability lifecycle changes through the applicationContext object. 579e41f4b71Sopenharmony_ci try { 580e41f4b71Sopenharmony_ci let lifecycleId = applicationContext.on('abilityLifecycle', abilityLifecycleCallback); 581e41f4b71Sopenharmony_ci GlobalContext.getContext().setObject("lifecycleId", lifecycleId); 582e41f4b71Sopenharmony_ci console.log(`registerAbilityLifecycleCallback lifecycleId: ${GlobalContext.getContext().getObject('lifecycleId')}`); 583e41f4b71Sopenharmony_ci } catch (paramError) { 584e41f4b71Sopenharmony_ci console.error(`error: ${paramError.code}, ${paramError.message}`); 585e41f4b71Sopenharmony_ci } 586e41f4b71Sopenharmony_ci } 587e41f4b71Sopenharmony_ci} 588e41f4b71Sopenharmony_ci``` 589e41f4b71Sopenharmony_ci 590e41f4b71Sopenharmony_ciMySecondAbility.ts 591e41f4b71Sopenharmony_ciSecond ability of the application 592e41f4b71Sopenharmony_ci```ts 593e41f4b71Sopenharmony_ciimport { UIAbility } from '@kit.AbilityKit'; 594e41f4b71Sopenharmony_ci 595e41f4b71Sopenharmony_ci// Import GlobalContext. Use the actual path declared. 596e41f4b71Sopenharmony_ciimport { GlobalContext } from '../GlobalContext' 597e41f4b71Sopenharmony_ciimport { BusinessError } from '@ohos.base'; 598e41f4b71Sopenharmony_ci 599e41f4b71Sopenharmony_ciexport default class MySecondAbility extends UIAbility { 600e41f4b71Sopenharmony_ci onDestroy() { 601e41f4b71Sopenharmony_ci let applicationContext = this.context.getApplicationContext(); 602e41f4b71Sopenharmony_ci let lifecycleId = GlobalContext.getContext().getObject("lifecycleId") as number; 603e41f4b71Sopenharmony_ci try { 604e41f4b71Sopenharmony_ci // 3. Deregister the listener for the ability lifecycle changes through the applicationContext object. 605e41f4b71Sopenharmony_ci applicationContext.off('abilityLifecycle', lifecycleId, (error) => { 606e41f4b71Sopenharmony_ci if (error && error.code !== 0) { 607e41f4b71Sopenharmony_ci console.error(`unregisterAbilityLifecycleCallback fail, error: ${JSON.stringify(error)}`); 608e41f4b71Sopenharmony_ci } else { 609e41f4b71Sopenharmony_ci console.log('unregisterAbilityLifecycleCallback success.'); 610e41f4b71Sopenharmony_ci } 611e41f4b71Sopenharmony_ci }); 612e41f4b71Sopenharmony_ci } catch (paramError) { 613e41f4b71Sopenharmony_ci console.error(`error: ${(paramError as BusinessError).code}, ${(paramError as BusinessError).message}`); 614e41f4b71Sopenharmony_ci } 615e41f4b71Sopenharmony_ci } 616e41f4b71Sopenharmony_ci} 617e41f4b71Sopenharmony_ci``` 618