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