• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# @ohos.app.ability.AbilityStage (AbilityStage)
2
3AbilityStage是HAP的运行时类。
4
5AbilityStage类提供在HAP加载的时候,通知开发者,可以在此进行该HAP的初始化(如资源预加载,线程创建等)能力。
6
7> **说明:**
8>
9> 本模块首批接口从API version 9 开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
10>
11> 本模块接口仅可在Stage模型下使用。
12
13## 导入模块
14
15```ts
16import { AbilityStage } from '@kit.AbilityKit';
17```
18
19## 属性
20
21**原子化服务API**:从API version 11开始,该接口支持在原子化服务中使用。
22
23**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
24
25| 名称 | 类型 | 只读 | 可选 | 说明 |
26| -------- | -------- | -------- | -------- | -------- |
27| context  | [AbilityStageContext](js-apis-inner-application-abilityStageContext.md) | 否 | 否 | AbilityStage上下文。 |
28
29## AbilityStage.onCreate
30
31onCreate(): void
32
33当应用创建时调用。同步接口,不支持异步回调。
34
35**原子化服务API**:从API version 11开始,该接口支持在原子化服务中使用。
36
37**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
38
39**示例:**
40
41```ts
42import { AbilityStage } from '@kit.AbilityKit';
43
44class MyAbilityStage extends AbilityStage {
45  onCreate() {
46    console.log('MyAbilityStage.onCreate is called');
47  }
48}
49```
50
51
52## AbilityStage.onAcceptWant
53
54onAcceptWant(want: Want): string
55
56启动一个specified ability时触发的事件。同步接口,不支持异步回调。
57
58**原子化服务API**:从API version 11开始,该接口支持在原子化服务中使用。
59
60**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
61
62**参数:**
63
64| 参数名 | 类型 | 必填 | 说明 |
65| -------- | -------- | -------- | -------- |
66| want | [Want](js-apis-app-ability-want.md) | 是 | Want类型参数,传入需要启动的ability的信息,如Ability名称,Bundle名称等。 |
67
68**返回值:**
69
70  | 类型 | 说明 |
71  | -------- | -------- |
72  | string | 返回一个ability标识,如果之前启动过标识的ability,不创建新的实例并拉回栈顶,否则创建新的实例并启动。 |
73
74**示例:**
75
76```ts
77import { AbilityStage, Want } from '@kit.AbilityKit';
78
79class MyAbilityStage extends AbilityStage {
80  onAcceptWant(want: Want) {
81    console.log('MyAbilityStage.onAcceptWant called');
82    return 'com.example.test';
83  }
84}
85```
86
87## AbilityStage.onNewProcessRequest<sup>11+</sup>
88
89onNewProcessRequest(want: Want): string
90
91在指定进程中启动UIAbility时回调。同步接口,不支持异步回调。
92
93**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
94
95**参数:**
96
97| 参数名 | 类型 | 必填 | 说明 |
98| -------- | -------- | -------- | -------- |
99| want | [Want](js-apis-app-ability-want.md) | 是 | Want类型参数,传入需要启动的ability的信息,如Ability名称,Bundle名称等。 |
100
101**返回值:**
102
103| 类型 | 说明 |
104| -------- | -------- |
105| string | 返回一个由开发者自行决定的进程字符串标识,如果之前此标识对应的进程已被创建,就让ability在此进程中运行,否则创建新的进程。 |
106
107**示例:**
108
109```ts
110import { AbilityStage, Want } from '@kit.AbilityKit';
111
112class MyAbilityStage extends AbilityStage {
113  onNewProcessRequest(want: Want) {
114    console.log('MyAbilityStage.onNewProcessRequest called');
115    return 'com.example.test';
116  }
117}
118```
119
120
121## AbilityStage.onConfigurationUpdate
122
123onConfigurationUpdate(newConfig: Configuration): void
124
125环境变化通知接口,发生全局配置变更时回调。同步接口,不支持异步回调。
126
127**原子化服务API**:从API version 11开始,该接口支持在原子化服务中使用。
128
129**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
130
131**参数:**
132
133  | 参数名 | 类型 | 必填 | 说明 |
134  | -------- | -------- | -------- | -------- |
135  | newConfig | [Configuration](js-apis-app-ability-configuration.md) | 是 | 发生全局配置变更时触发回调,当前全局配置包括系统语言、深浅色模式。 |
136
137**示例:**
138
139```ts
140import { AbilityStage, Configuration } from '@kit.AbilityKit';
141
142class MyAbilityStage extends AbilityStage {
143  onConfigurationUpdate(config: Configuration) {
144    console.log(`onConfigurationUpdate, language: ${config.language}`);
145  }
146}
147```
148
149## AbilityStage.onMemoryLevel
150
151onMemoryLevel(level: AbilityConstant.MemoryLevel): void
152
153当系统已决定调整内存时调用。例如,当该功能在后台运行时,没有足够的内存来运行尽可能多的后台进程时可以使用。同步接口,不支持异步回调。
154
155**原子化服务API**:从API version 11开始,该接口支持在原子化服务中使用。
156
157**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
158
159**参数:**
160
161  | 参数名 | 类型 | 必填 | 说明 |
162  | -------- | -------- | -------- | -------- |
163  | level | [AbilityConstant.MemoryLevel](js-apis-app-ability-abilityConstant.md#memorylevel) | 是 | 回调返回内存微调级别,显示当前内存使用状态。|
164
165**示例:**
166
167```ts
168import { AbilityStage, AbilityConstant } from '@kit.AbilityKit';
169
170class MyAbilityStage extends AbilityStage {
171  onMemoryLevel(level: AbilityConstant.MemoryLevel) {
172    console.log(`onMemoryLevel, level: ${JSON.stringify(level)}`);
173  }
174}
175```
176
177## AbilityStage.context
178
179context: AbilityStageContext
180
181指示AbilityStage的上下文。
182
183**原子化服务API**:从API version 11开始,该接口支持在原子化服务中使用。
184
185**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
186
187| 属性名      | 类型                        | 说明                                                         |
188| ----------- | --------------------------- | ------------------------------------------------------------ |
189| context  | [AbilityStageContext](js-apis-inner-application-abilityStageContext.md) | 在Ability启动阶段进行初始化时回调,获取到该Ability的context值。 |
190
191**示例:**
192
193```ts
194import { AbilityStage } from '@kit.AbilityKit';
195
196export default class MyAbilityStage extends AbilityStage {
197  onCreate() {
198    let abilityStageContext = this.context;
199  }
200}
201```
202
203## AbilityStage.onDestroy<sup>12+<sup>
204
205onDestroy(): void
206
207当应用销毁时调用,此方法将在正常的调度生命周期中调用,当应用程序异常退出或被终止时,将不会调用此方法。同步接口,不支持异步回调。
208
209**原子化服务API**:从API version 12开始,该接口支持在原子化服务中使用。
210
211**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
212
213**示例:**
214
215```ts
216import { AbilityStage } from '@kit.AbilityKit';
217
218class MyAbilityStage extends AbilityStage {
219  onDestroy() {
220    console.log('MyAbilityStage.onDestroy is called');
221  }
222}
223```
224
225## AbilityStage.onPrepareTermination<sup>15+<sup>
226
227onPrepareTermination(): AbilityConstant.PrepareTermination
228
229当应用被用户关闭时调用,可用于询问用户选择立即执行操作还是取消操作。同步接口,不支持异步回调。
230
231当前仅在2in1设备上生效。
232
233> **说明:**
234>
235> - 仅当应用正常退出时会调用该接口。如果应用被强制关闭,则不会调用该接口。
236>
237> - 当[AbilityStage.onPrepareTerminationAsync](#abilitystageonprepareterminationasync15)实现时,本回调函数将不执行。
238
239**需要权限**:ohos.permission.PREPARE_APP_TERMINATE
240
241**原子化服务API**:从API version 15开始,该接口支持在原子化服务中使用。
242
243**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
244
245**返回值:**
246
247| 类型 | 说明 |
248| -------- | -------- |
249| [AbilityConstant.PrepareTermination](js-apis-app-ability-abilityConstant.md#preparetermination15) | 用于返回用户的选择结果。 |
250
251**示例:**
252
253```ts
254import { AbilityConstant, AbilityStage } from '@kit.AbilityKit';
255
256class MyAbilityStage extends AbilityStage {
257  onPrepareTermination(): AbilityConstant.PrepareTermination {
258    console.info('MyAbilityStage.onPrepareTermination is called');
259    return AbilityConstant.PrepareTermination.CANCEL;
260  }
261}
262```
263
264## AbilityStage.onPrepareTerminationAsync<sup>15+<sup>
265
266onPrepareTerminationAsync(): Promise\<AbilityConstant.PrepareTermination>
267
268当应用被用户关闭时调用,可用于询问用户选择立即执行操作还是取消操作。使用Promise异步回调。当前仅在2in1设备上生效。
269
270> **说明:**
271>
272> - 仅当应用正常退出时会调用该接口。如果应用被强制关闭,则不会调用该接口。
273>
274> - 若异步回调内发生crash,按超时处理,执行等待超过10秒未响应,应用将被强制关闭。
275
276**需要权限**:ohos.permission.PREPARE_APP_TERMINATE
277
278**原子化服务API**:从API version 15开始,该接口支持在原子化服务中使用。
279
280**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
281
282**返回值:**
283
284| 类型 | 说明 |
285| -------- | -------- |
286| Promise\<[AbilityConstant.PrepareTermination](js-apis-app-ability-abilityConstant.md#preparetermination15)> | Promise对象,返回用户的选择结果。 |
287
288**示例:**
289
290```ts
291import { AbilityConstant, AbilityStage } from '@kit.AbilityKit';
292
293class MyAbilityStage extends AbilityStage {
294  async onPrepareTerminationAsync(): Promise<AbilityConstant.PrepareTermination> {
295    await new Promise<AbilityConstant.PrepareTermination>((res, rej) => {
296      setTimeout(res, 3000); // 延时3秒后执行
297    });
298    return AbilityConstant.PrepareTermination.CANCEL;
299  }
300}
301```
302