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

news2024/9/21 16:36:26

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(),可以在这里面进行系统资源释放、数据保存等等操作。

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2108302.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Python】Windows环境下更改pip安装源

文章目录 1.前言2.pip临时安装更改源3.pip永久更改安装源3.1方法13.2方法2 1.前言 由于pip的默认的安装源在国外,导致我们在使用pip命令安装Python 库或包时速度特别慢,因此我们可以临时使用国内的源进行下载,或者直接更改pip的下载源 2.pip临时安装更改源 pip install xxx …

微服务——服务注册和发现(二)

服务注册和发现 1.4.服务发现 服务的消费者要去nacos订阅服务,这个过程就是服务发现,步骤如下: 引入依赖 配置Nacos地址 发现并调用服务 1.4.1.引入依赖 服务发现除了要引入nacos依赖以外,由于还需要负载均衡,因…

思科IP访问控制列表3

#网络安全技术实现# #任务三扩展访问控制列表的控制3# #1配置计算机的IP 地址、子网掩码和网关 #2配置Switch-A的主机名称,创建vlan 10,20,30,并将Fa0/1划入vlan 10,Fa0/2划入vlan 20,G0/1划入vlan 30 Switch(config)#hostname Switch-A S…

QML学习二:Qt启用qml文件实时预览编辑,以及打印日志到控制台

开发环境:Qt 6.5.3 LTS 1、Qt 6.5.3 LTS 2、Pyside6 3、Python 3.11.4 效果如下,右侧更改的代码可以实时反映到左侧的设计器中。 Qt启用qml文件实时预览编辑,以及打印日志到控制台 一、打开Qt Designer插件二、qml和Python文件打印输出到…

2024年高教社杯数学建模国赛C题超详细解题思路分析

本次国赛预测题目难度,选题人数如下所示 难度评估 A:B:C 1.8:1.3:1 D:E1.5:1 选题人数 A:B:C 1:1.5:2.8 D:E0.5:1.2 C题一直以来都是竞赛难度最低、选题人数最多的一道本科生选题,近三年C题的选题人数一直都是总参赛队伍的一半左右,2023年…

二进制方式安装K8S

⼀、安装说明 本⽂章将演示Rocky 8 ⼆进制⽅式安装⾼可⽤k8s 1.28.0版本。 ⽣产环境中,建议使⽤⼩版本⼤于5的Kubernetes版本,⽐如1.19.5 以后的才可⽤于⽣产环境。 ⼆、集群安装 2.1 基本环境配置 请统⼀替换这些⽹段,Pod⽹段和service和…

如何在Jmeter安装“ Stepping Thread Group“?

1、点击"选项",再点击"Plugins Manager" 2、安装插件Custom Thread Groups 3、添加"Stepping Thread Group" 4、"Stepping Thread Group"的介绍

HTML/CSS/JS学习笔记 Day1(HTML)

跟着该视频学习,记录笔记:【黑马程序员pink老师前端入门教程,零基础必看的h5(html5)css3移动端前端视频教程】https://www.bilibili.com/video/BV14J4114768?p12&vd_source04ee94ad3f2168d7d5252c857a2bf358 Day1 内容梳理: …

认知升级:互联网行业中的变革引擎与团队潜能激发

一、认知升级在互联网行业的独特价值 互联网行业以其快速迭代、信息爆炸、技术创新为特点,对从业者提出了更高的要求。认知升级,作为个人成长的重要路径,在互联网领域展现出无可替代的价值: 快速适应与学习:互联网行业…

最基本的SELECT...FROM结构

第0种:最基本的查询语句 SELECT 字段名,字段名 FROM 表名 SELECT 1; SELECT 11,3*2; FROM SELECT 11,3*2 FROM DUAL;#dual:伪表 我们可以用它来保持一个平衡 这里我们的值不需要在任何一个表里&#xf…

傅里叶变换家族

禹晶、肖创柏、廖庆敏《数字图像处理(面向新工科的电工电子信息基础课程系列教材)》 禹晶、肖创柏、廖庆敏《数字图像处理》资源二维码

Ruoyi若依框架中工单管理(智能售货机运营管理系统)

新建TaskVo Data public class TaskVo extends Task {// 工单类型private TaskType taskType; } <resultMap type"taskVo" id"TaskVoResult"><result property"taskId" column"task_id"/><result property"task…

macos 系统文件操作时提示 Operation not permitted 异常解决方法 , 通过恢复模式 开启 /关闭 SIP方法

在macos系统中操作系统文件时提示 Operation not permitted 这个异常, 原因是因为在macos 10.11以上版本中默认启用了 SIP( System Integrity Protection )机制对系统文件进行保护, 要解决这个问题我们需要关机, 然后进入mac的恢复模式 : 在按电源键开机的同时, 一直按住 co…

速看,2024年全球6大消费新趋势发布啦!内附亚马逊报告

环境在变化、消费者的行为和需求在变化&#xff0c;产品创新也要紧跟这些变化。 近期&#xff0c;亚马逊全球开店发布了2024年最新的《全球电商消费趋势及选品洞察报告》&#xff0c;以帮助企业更好地了解全球消费者的需求。在这份报告里&#xff0c;亚马逊对全球视野下的美国…

Vulnhub:hacksudo2

靶机下载地址 信息收集 主机发现 nmap 192.168.31.0/24 -Pn -T4 靶机ip&#xff1a;192.168.31.188 端口扫描 nmap 192.168.31.188 -A -p- -T4 开放端口有80,111,1337(ssh),2049(nfs)。 目录扫描 访问http服务。 点击图片进入游戏。玩了一下没看到什么信息。 目录扫描。…

【Mysql】系统服务启动访问报错问题处理:this is incompatible with sql_mode=only_full_group_by

一、背景&#xff1a; 本来已经正常运行的平台&#xff0c;突然有一天由于对服务器进行部分操作迁移&#xff0c;发现jar可以正常启动&#xff0c;但是访问功能一直报错&#xff0c;监控后台日志后&#xff0c;发现了问题&#xff1a; 报错的具体信息如下&#xff1a; Caused…

岳阳市美术馆预约平台(小程序)论文

摘 要 互联网发展至今&#xff0c;无论是其理论还是技术都已经成熟&#xff0c;而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播&#xff0c;搭配信息管理工具可以很好地为人们提供服务。针对高校教师成果信息管理混乱&#xff0c;出错率高&#xff0c;信息安全…

QT运行ROS工程

文章目录 使用QT创建ROS工程项目配置修改cmake环境配置运行设置 运行 使用QT创建ROS工程 工程名字和路径 下一步(直接选择默认选项就可以&#xff09;->完成 完成之后 是这样的 接下来在工作空间里面创建功能包 鼠标选中src点击右键->添加新文件 name::功能包的名字…

2024国赛数学建模ABC题思路模型

完整的思路模型请查看文末名片 完整的思路模型请查看文末名片 完整的思路模型请查看文末名片

大屏可视化:完美自适应的解决方案

你好&#xff0c;我是沐爸&#xff0c;欢迎点赞、收藏、评论和关注。 昨天我们聊到阿里 DataV 大屏的五种自适应方案&#xff0c;每一种多少都有些瑕疵&#xff0c;如果没有看过昨天的博客&#xff0c;回头可以了解下&#xff1a;链接 可视化大屏如何完美适配屏幕&#xff1f…