问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

鸿蒙ArkUI生命周期详解

创作时间:
作者:
@小白创作中心

鸿蒙ArkUI生命周期详解

引用
CSDN
1.
https://blog.csdn.net/m0_68038853/article/details/139575949

鸿蒙系统的ArkUI框架为开发者提供了丰富的生命周期管理机制,涵盖了UIAbility、页面和组件等多个层面。本文将详细总结这些生命周期的各个阶段,帮助开发者更好地理解和使用这些机制。

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

1. UIAbility生命周期

UIAbility是鸿蒙应用中的一个重要概念,它代表了应用的一个实例。其生命周期主要包括以下几个阶段:

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

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

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

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

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

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

2. 页面生命周期

页面生命周期主要关注@Entry修饰的组件,包括以下几个阶段:

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

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

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

3. 组件生命周期

组件生命周期主要关注组件的创建和销毁过程,包括以下几个阶段:

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

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

从API10开始,新增了组件复用相关的生命周期:

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

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

4. 生命周期总结

综合上述内容,ArkUI的生命周期主要包括以下几个方面:

  • 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个)

    1. aboutToReuse:复用组件从复用缓存中加入到组件树之前调用
    2. aboutToRecycle:复用组件从组件树上卸载进入复用缓存之前调用
© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号