【最新鸿蒙应用开发】详解ArkUI生命周期

前言

不久前华为已经宣布全新HarmonyOS NEXT 鸿蒙星河版将在今年秋天正式和消费者见面,并已经面向开发者开放申请。鸿蒙星河版会有更智能、更极致的原生体验,也标志着鸿蒙迈向其发展的第二阶段。因此,对于鸿蒙生态建设而言,2024年可谓至关重要,而生态建设的前提,就是要有足够的开发人才。与之对应的,今年春招市场上与鸿蒙相关岗位和人才旺盛的热度,一方面反应了鸿蒙生态的逐渐壮大,另一方面也让人们对鸿蒙下一阶段的发展更具信心。

鸿蒙ArkUI相关的生命周期都有哪些?

1. UIAbility生命周期

onCreate、onWindowStageCreate、onForeground、onBackground、onWindowStageDestroy、onDestroy。
在这里插入图片描述

●onCreate:Create状态为在应用加载过程中,UIAbility实例创建完成时触发,系统会调用onCreate()回调。可以在该回调中进行页面初始化操作,例如变量定义资源加载等,用于后续的UI展示。

●onWindowStageCreate() :UIAbility实例创建完成之后,在进入Foreground之前,系统会创建一个WindowStage。WindowStage创建完成后会进入onWindowStageCreate()回调,可以在该回调中设置UI加载、设置WindowStage的事件订阅。

●onForegound() :在UIAbility的UI可见之前,如UIAbility切换至前台时触发。可以在onForeground()回调中申请系统需要的资源,或者重新申请在onBackground()中释放的资源。

●onWindowStageDestory() :在UIAbility实例销毁之前,则会先进入onWindowStageDestroy()回调,可以在该回调中释放UI资源。

●onBackground() :在UIAbility的UI完全不可见之后,如UIAbility切换至后台时候触发。可以在onBackground()回调中释放UI不可见时无用的资源,或者在此回调中执行较为耗时的操作,例如状态保存等。

●onWindowStageDestory() :在UIAbility实例销毁之前,则会先进入onWindowStageDestroy()回调,可以在该回调中释放UI资源。

●onDestroy() :Destroy状态在UIAbility实例销毁时触发。可以在onDestroy()回调中进行系统资源的释放、数据的保存等操作。

2. 页面生命周期:

onPageShow、onPageHide、nBackPress (页面是特殊组件,本身也是组件,包含了所有组件的生命周期函数) 。
页面生命周期,说白了就是@Entry修饰的组件,才称之为页面。

●onPageShow:页面每次显示时触发一次,包括路由过程、应用进入前台等场景,仅@Entry装饰的自定义组件生效。

●onPageHide:页面每次隐藏时触发一次,包括路由过程、应用进入后台等场景,仅@Entry装饰的自定义组件生效。

●onBackPress:当用户点击返回按钮时触发,仅@Entry装饰的自定义组件生效。

3. 组件生命周期:

aboutToAppear、aboutToDisappear、aboutToReusableAPI10+ 、aboutToRecycleAPI10+ 。

●aboutToAppear:在创建自定义组件的新实例后,在执行其build()函数之前执行。允许在aboutToAppear函数中改变状态变量,更改将在后续执行build()函数中生效。

●aboutToDisappear:函数在自定义组件销毁之前执行。不允许在aboutToDisappear函数中改变状态变量,特别是@Link变量的修改可能会导致应用程序行为不稳定。

(2个扩展,API10后面新增的组件复用,感兴趣参考上一篇文章详细谈及)
组件复用生命周期API10+ :

●aboutToReuse: 复用组件从复用缓存中加入到组件树之前调用

●aboutToRecycle: 复用组件从组件树上卸载进入复用缓存之前调用

在这里插入图片描述

注意点

如果是跳转的话会触发aboutToAppear和onPageShow,要是返回的话aboutToAppear是不触发的,只会触发onPageShow。
跳转到另一个页面:

●打开第一个页面:

○Index:aboutToAppear

○Index:onPageShow

●跳转第二个页面:

○Index:onPageHide

○Second:aboutToAppear

○Second:onPageShow

如果是点击back的话:

●Second:onBackPress
●Second:onPageHide
●Index:onPageShow
●Second:aboutToDisappear

如果是在第二个页面跳转到第一个页面:

●Index:aboutToAppear
●Index:onPageShow
●Second:onPageHide

aboutToAppear和onAppear的区别?

●aboutToAppear:是组件的生命周期方法,当组件实例创建后,执行build函数之前执行aboutToAppear
●onAppear:是组件的属性方法,在该组件显示时触发此回调

Text()
.onAppear(()=>{}

4. 综上所述:

生命周期钩子,一共是6+3+2(+2)个,具体如下:

UIAbility生命周期钩子(6个):

1.onCreate: 应用创建时调用。
2.onDestroy: 应用销毁时调用。
3.onWindowStageCreate: WindowStage创建时调用。
4.onWindowStageDestroy: WindowStage销毁时调用。
5.onForeground: 应用进入前台时调用。
6.onBackground: 应用进入后台时调用。

页面组件生命周期钩子(5个):

1.aboutToAppear: 页面创建时调用。
2.aboutToDisappear: 页面销毁时调用。
3.onPageShow: 页面准备展示时调用。(页面特有)
4.onPageHide: 页面完全隐藏时调用。(页面特有)
5.onBackPress: 用户返回操作时调用。(页面特有)

组件复用生命周期钩子(2个扩展)API10+ :

1.aboutToReuse:复用组件从复用缓存中加入到组件树之前调用
2.aboutToRecycle:复用组件从组件树上卸载进入复用缓存之前调用

总结

总的来说,华为鸿蒙不再兼容安卓,对中年程序员来说是一个挑战,也是一个机会。随着鸿蒙的不断发展以及国家的大力支持,未来鸿蒙职位肯定会迎来一个大的爆发,只有积极应对变化,不断学习和提升自己,我们才能在这个变革的时代中立于不败之地。
在这里插入图片描述

  • 14
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值