鸿蒙-生命周期介绍
·
一、UIAbility 介绍
UIAbility 是鸿蒙开发中包含 UI 界面的应用程序(也是一种组件),主要用于和用户进行交互。
UIAbility 特点
- 系统调度基本单元与窗口提供:UIAbility 是系统调度的基本单元,为应用提供绘制界面的窗口。所有页面和组件要渲染呈现,必须依托窗口,UIAbility 就提供了显示页面的窗口。
- 多页面实现模块功能:一个 UIAbility 可通过多个页面实现一个模块功能,内部可包含众多页面,且多个 UIAbility 页面能分类管理。像 WPS 软件,新建 Word 是一个新窗口,新建 Excel 又是一个新窗口,这就属于多个 UIAbility 的情况。
- 对应最近任务列表任务:每一个 UIAbility 的组件实例,都会对应最近任务列表中的一个任务。
总结
- 应用程序概念比 UIAbility 大,一个应用程序可能包含多个 UIAbility,一个 UIAbility 里包含很多页面,每个 UIAbility 实际形成一个新窗口,这些窗口可互相通信。每次打开应用,程序中会启动一个 UIAbility 的组件实例,能轻松让页面内容在 UIAbility 中加载出来。
- 项目创建成功时,默认会创建一个 UIAbility 模块,核心配置在
module.json5文件中。
核心的配置文件module.json5文件中配置
"abilities": [
{
"name": "EntryAbility",
"srcEntry": "./ets/entryability/EntryAbility.ets",
"description": "$string:EntryAbility_desc",
"icon": "$media:layered_image",
"label": "$string:EntryAbility_label",
"startWindowIcon": "$media:startIcon",
"startWindowBackground": "$color:start_window_background",
"exported": true,
"skills": [
{
"entities": [
"entity.system.home"
],
"actions": [
"action.system.home"
]
}
]
}
],
二、UIAbility 组件生命周期
在打开应用程序、创建窗口、切换应用程序前台或后台,以及关闭应用程序后台等操作时,会执行一系列函数,这些函数构成了 UIAbility 组件的生命周期。

UIAbility 生命周期函数执行流程总结
UIAbility 的生命周期通过一系列函数来体现,各函数作用如下:
- onCreate:代表应用初始化加载,此时应用正在启动,可接收外部传递的参数。
- onWindowStageCreate:应用创建时必须创建窗口对象,用于加载页面内容,开发中常在此函数执行数据库初始化、全局 AppStorage 内容存储等操作。
- onForeground:应用切换到前台,应用启动后默认会显示在前台。
- onBackground:应用切换到后台,即从手机界面退出。
- onWindowStageDestroy:应用退出系统前,先执行窗口销毁。
- onDestroy:应用的销毁。

三、页面的生命周期
被@Entry修饰的组件默认当作页面使用
@Entry
@Component
struct IndexPage {
onPageShow(): void {
console.log('onPageShow')
}
onPageHide(): void {
console.log('onPageHide')
}
onBackPress(): boolean | void {
console.log('onBackPress')
}
build() {
Column(){}
}
}
- onPageShow:页面被加载时执行
- onPageHide:页面隐藏时执行
- onBackPress:用户在页面上点击返回按钮时执行
上面这三个生命周期函数,只能用于被@Entry修饰的页面。不能直接用于@Component修饰的组件
aboutToAppear:代表组件被创建的时候运行
aboutToDisappear:组件被销毁的时候执行只有当你应用在后台被销毁,我们组件才代表被销毁了。
更多推荐



所有评论(0)