• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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