HarmonyOS — 生命周期

生命周期,就是从页面启动到界面显示过程中 或者 应用启动的过程中 需要调用的周期函数,这些都是自动调用的,可以通过生命周期的每个阶段来显示或者获取需要的信息,比如请求数据、数据传递、刷新页面等等。

生命周期包括:1,应用,生命周期,2,页面也生命周期,3,组件或自定义组件生命周期。

应用生命周期

当用户打开、切换和返回到对应应用时,应用中的UIAbility实例会在其生命周期的不同状态之间转换。

UIAbility类提供了一系列回调,通过这些回调可以知道当前UIAbility实例的某个状态发生改变,会经过UIAbility实例的创建和销毁,或者UIAbility实例发生了前后台的状态切换。

生命周期包括Create、Foreground、Background、Destroy四个状态,如下图所示。
在这里插入图片描述

uiAbility 生命周期状态详细说明
在这里插入图片描述

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

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

在onWindowStageCreate()回调中通过loadContent()方法设置应用要加载的页面,并根据需要调用on(‘windowStageEvent’)方法订阅WindowStage的事件(获焦/失焦、可见/不可见)

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

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

5、在UIAbility实例销毁之前,进入onWindowStageDestroy()回调

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

页面生命周期

页面生命周期,即被@Entry装饰的组件生命周期,提供以下生命周期接口:

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

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

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

组件生命周期

组件生命周期,即一般用@Component装饰的自定义组件(包括页面)的生命周期,如下图:
在这里插入图片描述
aboutToAppear:组件即将出现时回调该接口,具体时机为在创建自定义组件的新实例后,在执行其build()函数之前执行。

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

注意:onPageShow、onPageHide、onBackPress三个生命周期,只有在页面中(存在@Entry组件)才能生效,比如子组件中不生效。
除了上述三个生命周期,其他生命周期(aboutToAppear、onDidBuild、onBackPress、aboutToDisappear)在组件和页面中都存在并可以使用。

生命周期实战代码:https://juejin.cn/post/7369443744750190643

本文部分转载自:https://blog.csdn.net/2401_82546228/article/details/138573470

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值