HarmonyOS 鸿蒙Next 生命周期函数

发布于 1周前 作者 sinazl 最后一次编辑是 5天前 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 生命周期函数

UIAbility组件的生命周期函数

onCreate、onWindowStageCreate、onForeground、onBackground、onWindowStageDestroy、onDestroy。都可以在EntryAbility.ets找到并补充相关业务事件。

  • onCreate:Create状态为在应用加载过程中,UIAbility实例创建完成时触发,系统会调用onCreate()回调。可以在该回调中进行页面初始化操作,例如变量定义资源加载等,用于后续的UI展示。
  • onDestroy:Destroy状态在UIAbility实例销毁时触发。可以在onDestroy()回调中进行系统资源的释放、数据的保存等操作。
  • onWindowStageCreate:UIAbility实例创建完成之后,在进入Foreground之前,系统会创建一个WindowStage。WindowStage创建完成后会进入onWindowStageCreate()回调,可以在该回调中设置UI加载、设置WindowStage的事件订阅。
  • onWindowStageDestroy:在UIAbility实例销毁之前,则会先进入onWindowStageDestroy()回调,可以在该回调中释放UI资源
  • onForeground:在UIAbility的UI可见之前,如UIAbility切换至前台时触发。可以在onForeground()回调中申请系统需要的资源,或者重新申请在onBackground()中释放的资源。
  • onBackground:在UIAbility的UI完全不可见之后,如UIAbility切换至后台时候触发。可以在onBackground()回调中释放UI不可见时无用的资源,或者在此回调中执行较为耗时的操作,例如状态保存等。

页面生命周期

即应用的UI页面。可以由一个或者多个自定义组件组成,[@Entry](/user/Entry)装饰的自定义组件为页面的入口组件,即页面的根节点,一个页面有且仅能有一个[@Entry](/user/Entry)。只有被[@Entry](/user/Entry)装饰的组件才可以调用页面的生命周期。

一个Stage模型的应用中可以有多个UIAbility,一个UIAbility中可以包含多个UI页面,页面生命周期函数有onPageShow、onPageHide、onBackPress

  • aboutToAppear:组件即将出现时回调该接口,具体时机为在创建组件的新实例后,在执行其build()函数之前执行。
  • aboutToDisappear:函数在组件销毁之前执行。不允许在aboutToDisappear()函数中改变状态变量,特别是[@Link](/user/Link)变量的修改可能会导致应用程序行为不稳定。
  • onPageShow: 页面每次显示时触发一次,包括路由过程、应用进入前台等场景。
  • onPageHide:页面每次隐藏时触发一次,包括路由过程、应用进入后台等场景。
  • onBackPress:当用户点击返回按钮时触发。

自定义组件生命周期

[@Component](/user/Component)装饰的UI单元,可以组合多个系统组件实现UI的复用,可以调用组件的生命周期函数,有aboutToAppear、aboutToDisappear。

  • aboutToAppear:同页面组件一致,自定义组件不支持页面组件的其他生命周期函数。
  • aboutToDisappear:同页面组件一致,自定义组件不支持页面组件的其他生命周期函数。
回到顶部