UIAbility组件概述
UIAbility组件是HarmonyOS中一种包含UI界面的应用组件,主要用于与用户进行交互。每个UIAbility组件实例对应最近任务列表中的一个任务,可以包含多个页面来实现不同功能模块。
UIAbility组件生命周期
UIAbility组件的生命周期包括四个状态:Create、Foreground、Background、Destroy。在不同状态之间转换时,系统会调用相应的生命周期回调函数。
Create状态
Create状态表示UIAbility实例创建完成时触发,系统调用onCreate()
回调。在该回调中可以进行应用初始化操作,如变量定义、资源加载等,为后续的UI界面展示做准备。
import UIAbility from '@ohos.app.ability.UIAbility';
export default class EntryAbility extends UIAbility {
onCreate(want, launchParam) {
// 应用初始化
}
// ...
}
WindowStageCreate和WindowStageDestroy状态
在UIAbility实例创建完成后,在进入Foreground之前,系统会创建一个WindowStage。WindowStage创建完成后会触发onWindowStageCreate()
回调,可以在该回调中设置UI界面加载和订阅WindowStage的事件。
import UIAbility from '@ohos.app.ability.UIAbility';
import Window from '@ohos.window';
export default class EntryAbility extends UIAbility {
onWindowStageCreate(windowStage: Window.WindowStage) {
// 设置WindowStage的事件订阅(获焦/失焦、可见/不可见)
// 设置UI界面加载
windowStage.loadContent('pages/Index', (err, data) => {
// ...
});
}
// ...
}
// 对应onWindowStageCreate回调,在UIAbility实例销毁之前,会先进入onWindowStageDestroy回调,可以在该回调中释放UI界面资源。
export default class EntryAbility extends UIAbility {
// ...
onWindowStageDestroy() {
// 释放UI界面资源
}
}
Foreground和Background状态
Foreground和Background状态分别在UIAbility实例切换至前台和切换至后台时触发,对应于onForeground()
和onBackground()
回调。在onForeground()
中可以申请系统需要的资源,而在onBackground()
中可以释放UI界面不可见时无用的资源。
import UIAbility from '@ohos.app.ability.UIAbility';
export default class EntryAbility extends UIAbility {
onForeground() {
// 申请系统需要的资源,或者重新申请在onBackground中释放的资源
}
onBackground() {
// 释放UI界面不可见时无用的资源,或者在此回调中执行较为耗时的操作,例如状态保存等
}
}
Destroy状态
Destroy状态在UIAbility实例销毁时触发,可以在onDestroy()
回调中进行系统资源的释放、数据的保存等操作。
import UIAbility from '@ohos.app.ability.UIAbility';
export default class EntryAbility extends UIAbility {
onDestroy() {
// 系统资源的释放、数据的保存等
}
}