【鸿蒙开发笔记】如何理解 UIAbility 组件以及它的生命周期

UIAbility 组件是一种包含了 UI 的应用组件,主要用于和用户交互。
UIAbility 组件是系统调度的基本单元,为应用提供绘制界面的窗口,一个应用可以有多个 UIAbility 组件。
每一个 UIAbility 组件实例都会在最近任务列表中显示为一个对应的任务。那么就存在两种场景:

  1. 如果要在任务视图中只展示一个任务,那就是用一个 UIAbility;
  2. 想在任务视图中展示多个任务,或者同时打开多个窗口,那就使用多个 UIAbility 开发不同的模块功能

UIAbility 组件的生命周期

用户打开、切换和返回到对应的应用时候,应用中的 UIAbility 实例会触发不同的生命周期函数。

UIAbility 的生命周期有四个状态:Create、Foreground、Background 和 Destroy

  • Create:就是应用在加载过程中,UIAbility 实例创建完成时触发,系统会调用 onCreate 函数,可以在这个函数中进行页面初始化操作;
  • 在进入 Foreground 之前,系统会创建一个 windowStage,然后进入 onWindowStageCreate 回调,可以在回调中设置 UI 加载、设置 WindowStage 的事件监听。在onWindowStageCreate 回调中通过 loadContent()函数来设置应用要加载的页面。
  • Foreground,是 UIAbility 实例切换到前台的时候触发,对应的是 onForeground()回调,是在 UI 可见之前触发的,在这个回调中可以申请系统需要的资源。
  • Background,是 UIAbility 切换到后台的时候触发,也就是 UIAbility 的 UI 完全不可见之后,可以在 onBackground()回调中释放资源,或者执行一些比较耗时的操作,比如状态保存,停止定位功能,节省系统的资源消耗。
  • 在 UIAbility 实例销毁之前,会进入 onWindowStageDestroy()回调,可以在这个回调中释放 UI 资源,比如注销获焦/失焦的 WindowStage 事件。进入 onWindowStageDestroy()回调之前,会有一个叫 WindowStageWillDestroy 状态,它对应的回调是 onWindowStageWillDestroy()回调,在这个回调中释放 windowStage 对象获取的资源。
  • Destroy 状态,是在 UIAbility 实例销毁的时候触发,对应的回调是 onDestroy(),可以在这里面进行系统资源释放、数据保存等等操作。

完整的流程如图所示:
在这里插入图片描述

  • 6
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

读心悦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值