当前位置:首页 > 技术分析 > 正文内容

HarmonyOS的生命周期

HarmonyOS 的生命周期管理体系分为 应用、页面、组件 三个层级,其核心逻辑与交互规则如下:

一、应用生命周期(UIAbility 为核心)

  1. 状态流转
    UIAbility 组件的生命周期包括四个状态,通过回调函数管理关键逻辑:
  2. Create 状态:实例创建时触发 onCreate(),用于初始化变量、加载资源等;
  3. Foreground 状态:进入前台时触发 onForeground(),可恢复数据同步或动画;
  4. Background 状态:进入后台时触发 onBackground(),需暂停耗时任务或释放非必要资源;
  5. Destroy 状态:销毁时触发 onDestroy(),清理内存、断开连接等。
  6. WindowStage 关联
  7. 在 onCreate() 后,系统自动创建 WindowStage(窗口舞台),并通过 onWindowStageCreate() 回调通知开发者加载 UI 和设置窗口属性。

二、页面生命周期(@Entry 装饰的组件)

页面生命周期由 @Entry 装饰的根组件管理,包含以下核心接口:

  1. onPageShow:页面每次显示时触发(如应用从后台切换到前台,或路由跳转至该页面);适用于数据刷新、动画恢复等场景。
  2. onPageHide:页面每次隐藏时触发(如路由跳转离开或应用进入后台);可暂停计时器或保存临时数据。
  3. onBackPress:用户点击返回按钮时触发,支持自定义返回逻辑(如弹窗拦截)。

三、组件生命周期(@Component 装饰的自定义组件)

普通组件(非页面根组件)的生命周期通过以下接口实现:

  1. aboutToAppear:组件即将渲染时触发,在 build() 函数执行前调用,用于初始化非 UI 相关数据;
  2. aboutToDisappear:组件即将销毁时触发,用于释放资源或取消订阅事件。

四、执行顺序与交互规则


五、最佳实践

  1. 资源释放:在 onDestroy() 或 aboutToDisappear() 中释放网络连接、定时器等;
  2. 状态恢复:通过 onForeground() 和 onPageShow() 确保前后台切换时数据一致性;
  3. 性能优化:避免在 onCreate() 中执行阻塞性操作,优先使用异步任务。

扫描二维码推送至手机访问。

版权声明:本文由ruisui88发布,如需转载请注明出处。

本文链接:http://www.ruisui88.com/post/3552.html

标签: onpageshow
分享给朋友:

“HarmonyOS的生命周期” 的相关文章

【Vue3 基础】05.组件化

这是 Vue3 + Vite + Pinia +TS + Element-Plus 实战系列文档。最近比较忙没什么时间写文章,争取早日把这个系列完结吧~生命周期和模板引用在本章之前,我们通过响应式 api 和声明式渲染,处理了 DOM 的更新,但光是这些,对于一些复杂的需要手动操作 DOM 的情况,...

vue3使用vue-router路由(路由懒加载、路由传参)

vue-router 是 vue的一个插件库1. 专门用来实现一个SPA单页面应用2 .基于vue的项目基本都会用到此库SPA的理解1) 单页Web应用(single page web application,SPA)2) 整个应用只有一个完整的页面3) 点击页面中的链接不会刷新页面, 本身也不会向...

前端路由简介以及vue-router实现原理

作者:muwoo 来源:https://zhuanlan.zhihu.com/p/37730038后端路由简介路由这个概念最先是后端出现的。在以前用模板引擎开发页面时,经常会看到这样http://www.xxx.com/login 大致流程可以看成这样:浏览器发出请求服务器监听到80 端口(或443...

基于Spring Cloud+VUE的多租户小程序商城源码「快速二开可商用」

一、系统介绍JooLun平台是一个专注微信快速二开系统研发的平台,采用Java语言开发,使用的是最新微服务前后端分离技术,目前有公众号和小程序商城两个版本,有公众号后台管理、小程序商城。基于Spring Cloud微服务+VUE实现的核心框架多租户小程序商城源码,核心框架采用SpringBoot2+...

企业微信自建应用和消息发送配置对接系统指南

本文介绍企业微信应用创建、消息提醒、自动回复、自定义菜单和服务端接口对接过程。企业微信登录:https://work.weixin.qq.com/企业微信接口对接,应用授权和发送消息代码:https://www.easywechat.com/docs/5.x/wework/oauth一、创建自建应用...

微信小程序发展越来越快,Flutter应用开发越来越低效?

目前的疑惑微信小程序发展的越来越快,目前小程序甚至取代了大部分 App 的生态位,公司的坑位不增反降,只能让原生应用开发兼顾或换岗进行小程序的开发。以我的实际情况来讲,公司应用采用的 Flutter 框架,同样的功能不可避免的就会存在 Flutter 应用开发和微信小程序开发兼顾的情况,这种重复造轮...