鸿蒙开发学习笔记-生命周期小记

一、应用生命周期(UIAbility 生命周期)

应用生命周期通过 UIAbility 组件体现,管理整个应用的全局状态,主要包含以下核心回调:

|----------------|--------------------|----------------------|
| 生命周期回调 | 触发时机 | 典型用途 |
| onCreate() | UIAbility 实例创建时触发 | 初始化应用数据、加载资源 |
| onForeground() | UIAbility 切换至前台时触发 | 申请系统资源(如重新连接服务) |
| onBackground() | UIAbility 切换至后台时触发 | 释放 UI 不可见时的资源(如暂停动画) |
| onDestroy() | UIAbility 销毁前触发 | 清理资源、保存数据 |

扩展回调(与窗口相关):

onWindowStageCreate():UIAbility 窗口创建后触发,用于加载页面内容。

onWindowStageDestroy():窗口销毁前触发,用于释放 UI 资源。

二、页面生命周期

页面生命周期由 被 @Entry 装饰的根组件 管理,用于处理页面显示、隐藏等状态:

|---------------|------------------|------------------|
| 生命周期回调 | 触发时机 | 典型用途 |
| onPageShow() | 页面显示时触发(如应用进入前台) | 加载动态数据、启动动画 |
| onPageHide() | 页面隐藏时触发(如应用进入后台) | 暂停后台任务、保存临时数据 |
| onBackPress() | 用户点击返回按钮时触发 | 拦截返回操作(如确认退出对话框) |

三、组件生命周期

组件生命周期适用于 被 @Component 装饰的自定义组件,分为两类:

1.通用组件生命周期:

aboutToAppear():组件实例创建后,build() 执行前触发(数据初始化)。

aboutToDisappear():组件销毁前触发(资源释放)。

2.页面组件生命周期(通过 pageLifetimes 监听):

show():组件所在页面显示时触发。

hide():组件所在页面隐藏时触发。

四、关键注意事项

1.层级关系:

应用生命周期 > 页面生命周期 > 组件生命周期,需根据场景选择合适层级。

2.异步操作:

避免在生命周期回调中执行耗时操作(如网络请求),需使用异步线程。

3.资源管理:

确保在 onBackground() 或 aboutToDisappear() 中释放非必要资源,防止内存泄漏。

相关推荐
sensen_kiss11 小时前
CPT304 SoftwareEngineeringII 软件工程 2 Pt.8 软件测试 (Software Testing)(上)
学习·软件工程
力学与人工智能11 小时前
PPT分享 | 洛桑联邦理工学院魏震:深度几何学习在工业设计优化中的应用
学习·优化·工业设计·深度几何学习·洛桑联邦理工学院
王二蛋与他的张大花12 小时前
高德地图 Flutter 插件:跨 Android / iOS / HarmonyOS 的完整实现
harmonyos
狼哥168612 小时前
蛋糕美食元服务_地图实现指南
ui·harmonyos
sensen_kiss12 小时前
CPT304 SoftwareEngineeringII 软件工程 2 Pt.9 软件测试 (Software Testing)(下)
学习·软件工程
wu_ye_m13 小时前
学习c语言第35天 函数声明和定义
c语言·开发语言·学习
清辞85313 小时前
Coze从入门到实战---第一、二章
大数据·人工智能·学习·语言模型
伊布拉西莫13 小时前
【流畅的Python】第20章:并发执行器 — 学习笔记
笔记·python·学习
JohnnyDeng9413 小时前
【鸿蒙】HarmonyOS 数据持久化:Preferences/KV Store/RelationalStore 选型指南
harmonyos·arkts·鸿蒙·数据持久化·arkui
小雨青年14 小时前
【鸿蒙原生开发会议随记 Pro】用 NavPathStack 收拢会议页面跳转和返回刷新
华为·harmonyos