1# @ohos.app.ability.UIExtensionAbility (Base Class for ExtensionAbilities with UI) 2 3**UIExtensionAbility**, inherited from [ExtensionAbility](js-apis-app-ability-extensionAbility.md), is a base class for ExtensionAbilities with UI in specific scenarios. It provides attributes and APIs related to ExtensionAbilities with UI. You cannot inherit from this base class. 4 5> **NOTE** 6> 7> The initial APIs of this module are supported since API version 10. Newly added APIs will be marked with a superscript to indicate their earliest API version. 8> The APIs of this module can be used only in the stage model. 9 10## Modules to Import 11 12```ts 13import UIExtensionAbility from '@ohos.app.ability.UIExtensionAbility'; 14``` 15 16## Attributes 17 18**System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore 19 20| Name| Type| Readable| Writable| Description| 21| -------- | -------- | -------- | -------- | -------- | 22| context | [UIExtensionContext](js-apis-inner-application-uiExtensionContext.md) | Yes| No| Context.| 23 24## UIExtensionAbility.onCreate 25 26onCreate(): void 27 28Called to initialize the service logic when a UIExtensionAbility is being created. 29 30**System capability**: SystemCapability.Ability.AbilityRuntime.Core 31 32## UIExtensionAbility.onSessionCreate 33 34onSessionCreate(want: Want, session: UIExtensionContentSession): void 35 36Called when a **UIExtensionContentSession** instance is created for this UIExtensionAbility. 37 38**System capability**: SystemCapability.Ability.AbilityRuntime.Core 39 40**Parameters** 41 42| Name| Type| Mandatory| Description| 43| -------- | -------- | -------- | -------- | 44| want | [Want](js-apis-app-ability-want.md) | Yes| Want information related to this UIExtensionAbility, including the ability name and bundle name.| 45| session | [UIExtensionContentSession](js-apis-app-ability-uiExtensionContentSession.md) | Yes| UI content information related to this UIExtensionAbility.| 46 47## UIExtensionAbility.onSessionDestroy 48 49onSessionDestroy(session: UIExtensionContentSession): void 50 51Called when a **UIExtensionContentSession** instance is destroyed for this UIExtensionAbility. 52 53**System capability**: SystemCapability.Ability.AbilityRuntime.Core 54 55**Parameters** 56 57| Name| Type| Mandatory| Description| 58| -------- | -------- | -------- | -------- | 59| session | [UIExtensionContentSession](js-apis-app-ability-uiExtensionContentSession.md) | Yes| UI content information related to this UIExtensionAbility.| 60 61## UIExtensionAbility.onForeground 62 63onForeground(): void; 64 65Called when this UIExtensionAbility is switched from the background to the foreground. 66 67**System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore 68 69## UIExtensionAbility.onBackground 70 71onBackground(): void; 72 73Called when this UIExtensionAbility is switched from the foreground to the background. 74 75**System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore 76 77## UIExtensionAbility.onDestroy 78 79onDestroy(): void | Promise<void>; 80 81Called to clear resources when this UIExtensionAbility is destroyed. 82 83After the **onDestroy()** lifecycle callback is executed, the application may exit. Consequently, the asynchronous function (for example, asynchronously writing data to the database) in **onDestroy()** may fail to be executed. You can use the asynchronous lifecycle to ensure that the subsequent lifecycle continues only after the asynchronous function in **onDestroy()** finishes the execution. 84 85**System capability**: SystemCapability.Ability.AbilityRuntime.Core 86