当前位置: 首页 > news >正文

鸿蒙开发学习——应用程序框架

文章目录

    • UIAbility的生命周期
      • Create状态
      • WindowStageCreate
      • Foreground和Background前后台展示控制
      • onWindowStageDestroy
      • Destory
  • 总结

UIAbility的生命周期

在这里插入图片描述

  • 感觉这里他讲的不清晰,UIAbility的4个声明周期是Create、Foreground(桌面展示)、Background(后台隐藏)、destroy销毁,然后WindowStageCreate和WindowStageDestory是窗口管理器的生命周期。

Create状态

  • 创建UIAbility时,系统回调用oncreate函数,需要在oncreate函数中进行初始化操作。
    • 在src中的entryability中的EntryAbility.ts中设置有关生命周期的操作。
    • 初始化了日志信息等操作。
  • 使用样例
  • 例如用户打开电池管理应用,在应用加载过程中,在UI页面可见之前,可以在onCreate回调中读取当前系统的电量情况,用于后续的UI页面展示。

在这里插入图片描述

WindowStageCreate

在这里插入图片描述

  • create创建应用,到进入Foreground前台进行展示之前,需要窗口管理器创建一个WindowStage,类似窗口平台。

    • WindowStage是本地窗口管理器,用于管理窗口相关的内容,控制窗口是在前台进行展示,还是在后台不可见等
    • 控制窗口的获焦和失焦,具体参考官网给的程序
      • 例如用户打开游戏应用,正在打游戏的时候,有一个消息通知,打开消息,消息会以弹窗的形式弹出在游戏应用的上方,此时,游戏应用就从获焦切换到了失焦状态,消息应用切换到了获焦状态。对于消息应用,在onWindowStageCreate回调中,会触发获焦的事件回调,可以进行设置消息应用的背景颜色、高亮等操作。
  • 具体回调函数onWindowStageCreate

    • 设置UI界面加载的具体内容,比如说通过loadContent设置第一个加载的页面内容
    • 其他的包括WindowStage事件订阅等操作,其他回调函数展示如下,相关开发链接跳转

在这里插入图片描述

  • 在我展示的代码中,第一个展示的是ToDoListPage界面。

Foreground和Background前后台展示控制

Foreground

  • Foreground是应用进入前台桌面展示时,所处于的生命周期,通过回调函数onForeground来实现资源申请。一般回调函数实现如下功能
    • 在onForeground回调中申请系统需要的资源
    • 重新申请在onBackground中释放的资源。

onBackground

  • background是应用进入后台展示时,所处于的生命周期,通过回调函数onBackground来是实现相关操作。实现功能如下
    • 释放UI页面不可见时无用的资源
    • 执行较为耗时的操作,例如状态保存

在这里插入图片描述

  • 使用地图应用的操作权限
    • 用户打开地图应用查看当前地理位置的时候,假设地图应用已获得用户的定位权限授权,可以在onForeground回调函数中,申请定位资源,获取定位信息
    • 当地图应用切换到后台状态,可以在onBackground回调中停止定位功能,以节省系统的资源消耗。

onWindowStageDestroy

  • 在手机使用中,关闭窗口,对应回调函数onWindowStageDestory,释放UI界面资源
    在这里插入图片描述

Destory

  • 手机应用中,就是彻底关掉应用,完全销毁,回到函数onDestory
    • 系统资源的释放、数据的保存等操作

总结

  • 大概知道了,四个状态,两个窗口管理器。

相关文章:

鸿蒙开发学习——应用程序框架

文章目录 UIAbility的生命周期Create状态WindowStageCreateForeground和Background前后台展示控制onWindowStageDestroyDestory 总结 UIAbility的生命周期 感觉这里他讲的不清晰,UIAbility的4个声明周期是Create、Foreground(桌面展示)、Back…...

Linux dd命令详解:如何从标准输入或文件中读取、转换并输出数据(附实例教程和注意事项)

Linux dd命令介绍 Linux dd命令用于读取、转换并输出数据。dd可以从标准输入或文件中读取数据,根据指定的格式来转换数据,再输出到文件、设备或标准输出。这个命令在备份硬盘、创建启动盘、数据恢复等场景中非常有用。 Linux dd命令适用的Linux版本 d…...

Python——常见内置模块

Python 模块(Modules)1、概念模块函数类变量2、分类3、模块导入的方法:五种4、使用import 导入模块5、使用from……import部分导入6、使用as关键字为导入模块或功能命名别名7、模块的搜索目录8、自定义模块 常见内置模块一、math模块二、rand…...

JAVA毕业设计112—基于Java+Springboot+Vue的宠物领养社区小程序(源码+数据库)

基于JavaSpringbootVue的宠物领养社区小程序(源码数据库)112 一、系统介绍 本系统前后端分离带小程序 小程序(用户端),后台管理系统(管理员) 小程序: 登录、注册、宠物领养、发布寻宠、发布领养、宠物社…...

golang log模块使用

在Go中,log 包是用于输出日志信息的标准库。以下是一些基本的 log 包的使用示例: 基本用法: package mainimport ("log" )func main() {log.Println("This is a log message.") } 运行程序,你会在控制台看到日…...

软件开发中的抓大放小vs极致细节思维

最近在开发过程中,遇到了好多次 “这个需求点这次要不要做?” 的问题, 主要有两方阵营,比如以研发主导的 “这次先不做、等必要的时候再做” ,另外一方是以PM主导的 “这个不做需求不完整,可能影响用户体验…...

java文件上传以及使用阿里云OSS

JavaWeb 文件上传本地存储阿里云OSS配置文件 yml配置文件 文件上传 前端页面三要素: 表单项type“file” 表单提交方式post 表单的enctype属性multipart/form-data 本地存储 保证上传的文件不重复 //获取原始文件名String originalFilename image.getOriginalFi…...

相关性分析和作图

相关的类型 1. Pearson、Spearman和Kendall相关 Pearson 积差相关系数衡量了两个定量变量之间的线性相关程度。(连续) Spearman等级相关系数则衡量分级定序变量之间的相关程度。(分类) Kendall’s Tau 相关系数也是一种非参数的…...

AlphaFold的原理及解读

1、背景 蛋白质是生物体内一类重要的生物大分子,其结构复杂多样,蛋白质的结构对于理解其功能和参与的生物学过程具有重要意义。从生物学角度上看,蛋白质的结构可以分为四个层次:初级结构、二级结构、三级结构和四级结构。 初级结…...

【ChatGLM3-6B】Docker下快速部署

【ChatGLM2-6B】小白入门及Docker下部署 前提下载安装包网盘地址 开始安装加载镜像启动镜像进入容器启动模型交互页面访问页面地址 前提 安装好了docker安装好了NVIDIA显卡16G 下载安装包 网盘地址 ​ 这里因为网盘上传文件有大小限制,所以使用了分卷压缩的方式…...

两部手机数据传输后备忘录不见了怎么回事

想必很多人都遇到过,当两部手机进行备忘录数据传输后,突然发现备忘录不见了,这让人不禁着急上火,我也曾经遇到过这种事情导致很多重要的内容都丢失了。 一般出现这种情况可能是因为,两部手机使用的是不同的云服务&…...

【Unity入门】LayerMask小结

LayerMask常用的几种方法 LayerMask.GetMask 根据 层名称 获取其层遮罩值 遮罩值 2^层索引 假设 UserLayerA 和 UserLayerB 是第十层和第十一层。 这两个层会具有 User Layer 值 10 和 11。若要获取其层遮罩值, 可以将其名称传入 GetMask。参数可以是 其名称的列…...

mysql按年、季度、月,统计

以下是按年、按季度和按月统计SQL查询语句: 按年统计: SELECTds.checker,YEAR(ds.create_time) AS settleYear,SUM(ds.quantity) AS quantity,SUM(ds.approval_price) AS approvalPrice FROMdata_settle ds WHEREds.delete_flag 0AND ds.approval_sta…...

Python的换行和转义:深入理解代码排版与字符串处理

更多Python学习内容:ipengtao.com 大家好,我是涛哥,今天为大家分享 Python的换行和转义:深入理解代码排版与字符串处理,全文2700字,阅读大约8分钟。 在Python编程中,正确使用换行和转义字符是保…...

dart多线程双向通信的案例----【小学4年级课程】

下面是运行后的打印顺序 I/flutter (20170): 上班 I/flutter (20170): 这里是校长室:main I/flutter (20170): 这里是饭堂:fantang1 I/flutter (20170): 这里是收发室--检查小孩发回去给他妈妈的信息是:我是秘书的儿子,我来到在校长室了。校长今晚想吃羊…...

每日一练:简易计算器

1. 题目 设计实现一个简易的计算器,可以进行加减乘除的计算。可以考虑通过GUI和命令行输入等方式实现。 2. 设计思路 创建一个简单的用户界面,可以使用 Python 的 Tkinter模块。在界面上放置按钮,每个按钮代表一个数字、运算符或其他功能。…...

Jmeter和Testlink自动化测试框架研究与实施

摘 要 目前基于Jmeter的接口自动化测试框架,大多只实现脚本维护和自动调度,无法与Testlink进行互通,实现测试方案与自动化实施流程连接,本文基于Testlink、Jmeter、Jenkins实现:通过Testlink统一维护接口自动化测试用…...

MethodArgumentNotValidException 与 ConstraintViolationException

MethodArgumentNotValidException 和ConstraintViolationException 都是用于处理参数校验异常的异常类,但它们在不同的上下文中使用。 1. MethodArgumentNotValidException: - MethodArgumentNotValidException 是在 Spring MVC 或 Spring Boot 中处…...

【数学】旋转矩阵

参考链接 OpenGL from OpenGL.GL import * from OpenGL.GLUT import * from math import * import numpy as np def draw_axes():glClear(GL_COLOR_BUFFER_BIT)# 绘制坐标轴glColor3f(1.0, 1.0, 1.0) # 设置坐标轴颜色为白色glBegin(GL_LINES)glVertex2f(-1.0, 0.0) # x 轴g…...

Python与设计模式--中介者模式

23种计模式之 前言 (5)单例模式、工厂模式、简单工厂模式、抽象工厂模式、建造者模式、原型模式、(7)代理模式、装饰器模式、适配器模式、门面模式、组合模式、享元模式、桥梁模式、(11)策略模式、责任链模式、命令模式、中介者模…...

EncoderButton库解析:嵌入式旋转编码器与按键事件驱动方案

1. EncoderButton 库深度解析:面向嵌入式工程师的事件驱动型旋转编码器与按键一体化解决方案1.1 库定位与工程价值EncoderButton 是一个专为 Arduino 和 Teensy 平台设计的轻量级、事件驱动型外设抽象库,其核心目标是在不丢失任何物理事件的前提下&#…...

华为交换机MSTP+VRRP实战:从零配置到故障排查,手把手教你搞定企业双机热备

华为交换机MSTPVRRP企业级部署全指南:从规划到排障的深度实践 在中小型企业网络架构中,业务连续性和链路可靠性是核心诉求。当核心交换机单点故障可能导致整个园区网络瘫痪时,如何设计既具备冗余能力又能智能管理流量的解决方案?这…...

如果大家都不断进步,模型最终是不是都差不多?

并不是。整体实力可能趋于一致,但模型或仍将保留差异化优势,市场不太可能最终形成赢家通 吃的格局。 的确,所有主要公司都在努力提高模型质量,但这并不意味着它们可以互相替代。不同公司在架构、训练数据、产品侧重点及技术方向上…...

UE5: 解密Actor Tick的注册时机与执行流程

1. 从“Tick”说起:为什么我们需要关心它? 如果你用过UE5,哪怕只是新建一个空白项目,放一个立方体进去,大概率也见过“Tick”这个词。在蓝图的“事件”图表里,那个每帧自动执行的“Event Tick”节点&#x…...

为什么你的RAG应用训练成本比同行高3.8倍?(向量索引冗余、Embedding缓存泄漏、Prompt编译失效三大黑洞)

第一章:AI原生软件研发成本优化实战技巧 2026奇点智能技术大会(https://ml-summit.org) AI原生软件的研发成本常被低估,尤其在模型训练、推理服务部署与持续迭代阶段。合理利用工具链、架构分层与资源调度策略,可在不牺牲质量的前提下显著降…...

利用GME多模态向量模型为AE视频片段自动生成标签与描述

利用GME多模态向量模型为AE视频片段自动生成标签与描述 每次打开After Effects,面对时间线上几十甚至上百个视频片段,你是不是也感到一阵头疼?给每个片段手动打标签、写描述,不仅枯燥乏味,还特别容易出错。尤其是在处…...

你的SSH密钥可能已经过期了运

引言 在现代软件开发中,性能始终是衡量应用质量的重要指标之一。无论是企业级应用、云服务还是桌面程序,性能优化都能显著提升用户体验、降低基础设施成本并增强系统的可扩展性。对于使用 C# 开发的应用程序而言,性能优化涉及多个层面&#x…...

ESLyric-LyricsSource:解锁Foobar2000高级逐字歌词的完整指南

ESLyric-LyricsSource:解锁Foobar2000高级逐字歌词的完整指南 【免费下载链接】ESLyric-LyricsSource Advanced lyrics source for ESLyric in foobar2000 项目地址: https://gitcode.com/gh_mirrors/es/ESLyric-LyricsSource 你是否曾经在使用Foobar2000时&…...

2026年AI企业怎么选?深度评测解析,新手也能精准避坑

一、摘要据IDC 2026年上半年中国AI行业发展报告显示,国内AI企业数量突破3000家,但具备核心技术自研能力、可实现规模化商业落地的企业不足20%,同质化竞争导致用户选型失误率高达45%。无论是企业用户寻求AI解决方案赋能业务,还是个…...

西门子博途1500SCL程序和梯形图两者结合编程,包括西门子v90伺服profinet通讯控制

西门子博途1500SCL程序和梯形图两者结合编程,包括西门子v90伺服profinet通讯控制,发那科机器人profinet通讯控制,多profinet io从站,扫码枪串口通讯,触摸屏类似配方功能多行参数显示,模块化结构化编程方式&…...