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