HarmonyOS Stage模型 UIAbility生命周期状态

news2024/10/1 1:29:28

UIAbility的生命周期包括Create、Foreground、Background、Destroy四个状态
  • Create状态,在UIAbility实例创建时触发,对应onCreate回调。可以在onCreate回调中进行相关初始化操作
    import UIAbility from '@ohos.app.ability.UIAbility';
    import window from '@ohos.window';
    
    export default class EntryAbility extends UIAbility {
        onCreate(want: Want, launchParam: AbilityConstant.LaunchParam) {
            // 应用初始化
            // ...
        }
        // ...
    }
  • Foreground状态,在UIAbility切换至前台时触发。对应onForeground回调,在UIAbility的UI页面可见之前,即UIAbility切换至前台时触发。可以在onForeground回调中申请系统需要的资源,或者重新申请在onBackground中释放的资源
    import UIAbility from '@ohos.app.ability.UIAbility';
    import window from '@ohos.window';
    
    export default class EntryAbility extends UIAbility {
        // ...
    
        onForeground() {
            // 申请系统需要的资源,或者重新申请在onBackground中释放的资源
            // ...
        }
    
    }
  • Background状态,在UIAbility切换至后台时触发。对应onBackground回调,在UIAbility的UI页面完全不可见之后,即UIAbility切换至后台时候触发。可以在onBackground回调中释放UI页面不可见时无用的资源,或者在此回调中执行较为耗时的操作,例如状态保存等
    import UIAbility from '@ohos.app.ability.UIAbility';
    import window from '@ohos.window';
    
    export default class EntryAbility extends UIAbility {
        // ...
    
        onBackground() {
            // 释放UI页面不可见时无用的资源,或者在此回调中执行较为耗时的操作
            // 例如状态保存等
            // ...
        }
    }
  •  Destroy状态,在UIAbility销毁时触发。可以在onDestroy回调中进行系统资源的释放、数据的保存等操作
    import UIAbility from '@ohos.app.ability.UIAbility';
    import window from '@ohos.window';
    
    export default class EntryAbility extends UIAbility {
        // ...
    
        onDestroy() {
            // 系统资源的释放、数据的保存等
            // ...
        }
    }
WindowStageCreate和WindowStageDestroy为窗口管理器(WindowStage)在UIAbility中管理UI界面功能的两个生命周期回调
  • WindowStageCreate回调,UIAbility实例创建完成之后,在进入Foreground之前,系统会创建一个WindowStage。每一个UIAbility实例都对应持有一个WindowStage实例。
    WindowStage为本地窗口管理器,用于管理窗口相关的内容,例如与界面相关的获焦/失焦、可见/不可见。

    可以在onWindowStageCreate回调中,设置UI页面加载、设置WindowStage的事件订阅。

    import UIAbility from '@ohos.app.ability.UIAbility';
    import window from '@ohos.window';
    
    export default class EntryAbility extends UIAbility {
        // ...
    
        onWindowStageCreate(windowStage: window.WindowStage) {
            // 设置UI页面加载
            // 设置WindowStage的事件订阅(获焦/失焦、可见/不可见)
            // ...
    
            windowStage.loadContent('pages/Index', (err, data) => {
                // ...
            });
        }
        // ...
    }
  • WindowStageDestroy回调,在UIAbility实例销毁之前,会先进入onWindowStageDestroy回调,我们可以在该回调中释放UI页面资源。
    import UIAbility from '@ohos.app.ability.UIAbility';
    import window from '@ohos.window';
    
    export default class EntryAbility extends UIAbility {
        // ...
    
        onWindowStageDestroy() {
            // 释放UI页面资源
            // ...
        }
    }
     

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

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

相关文章

k8s存储卷之动态

动态pv需要两个组件 1、卷插件,k8s本身支持的动态pv创建不包含NFS,需要声明和安装一个外部插件 Provisioner 存储分配器,动态创建pv,然后根据pvc的请求自动绑定和使用 2、StorageClass,用来定义pv的属性&#xff0c…

安全强化学习笔记

这里写自定义目录标题 参考资料环境算法CPO 2017 ICMLPCPO 2019 ICLRFOCOPS 2020 NIPSCRPO 2021 ICMLCUP 2022 NIPS TRPO 如何看懂TRPO里所有的数学推导细节? - 小小何先生的回答 - 知乎 参考资料 Safe Reinforcement Learning 安全/约束强化学习路线图(Safe RL…

记一次 Redis 数据库迁移

笔者通过一个 Redis 数据库迁移的例子,介绍了迁移脚本的执行思路。 作者:马文斌,MySQL/Redis 爱好者~ 爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。 本文约 500 字,预计阅…

解决数据库事务问题的Java神奇之道: 构建高效、可靠和灵活的事务管理系统

目录 1、前言 2、数据库事务基础知识 2.1 事务的定义与特性 2.2 数据库事务隔离级别 2.3 事务的并发控制与恢复 2.4 事务管理的重要性 3、传统的事务管理方式 3.1 基于JDBC的事务管理 3.1.1 基本概念和API介绍 3.1.2 事务的隔离级别控制 3.1.3 事务的异常处理与回滚…

【Docker】数据卷挂载以及宿主机目录挂载的使用

🎉🎉欢迎来到我的CSDN主页!🎉🎉 🏅我是Java方文山,一个在CSDN分享笔记的博主。📚📚 🌟推荐给大家我的专栏《Docker实战》。🎯🎯 &…

使用Pygame库来显示一个简单的窗口,并绘制一些基本的形状和文本

import pygame from pygame.locals import *# 初始化pygame库 pygame.init()# 创建窗口并设置大小和标题 screen_width 800 screen_height 600 screen pygame.display.set_mode((screen_width, screen_height)) pygame.display.set_caption("My Pygame")# 定义颜色…

未来饮食方向——通过精准营养降低慢性病风险

谷禾健康 营养对于身体健康和疾病预防的重要性已得到充分证实,全球膳食指南建议也得到了明确定义,以指导有效的政策。然而,吃什么、何时吃以及如何保持健康地优化饮食模式实际上非常复杂。 许多因素会影响饮食模式,包括个人的生理…

YOLOv6s,map值打印成两位小数(原本是显示0.538,变成显示为53.79)

显示结果 更改前: 更改后: 方法 将tools/eval.py中的--do_pr_metric后面改为defaultTrue即可打印出map值原本是显示0.538,变成显示为53.79,方法为👇 在YOLOv6-main/yolov6/core/evaler.py中做如下更改&#xff1a…

计算机缺失msvcp140.dll的修复教程,教你快速解决dll问题

“针对计算机系统中出现的msvcp140.dll文件丢失问题,小编将详细阐述一系列有效的解决方法。首先,msvcp140.dll是Microsoft Visual C Redistributable Package中的一个关键动态链接库文件,对于许多应用程序的正常运行至关重要。当系统提示该文…

鸿蒙HarmonyOS兼容JS的类Web开发

鸿蒙HarmonyOS兼容JS的类Web开发 文章目录 鸿蒙HarmonyOS兼容JS的类Web开发文件组织目录结构文件访问规则媒体文件格式 js标签配置pageswindow示例 app.js应用生命周期应用对象6 HML语法参考页面结构数据绑定普通事件绑定冒泡事件绑定5捕获事件绑定5列表渲染条件渲染逻辑控制块…

【.net core】yisha框架,bootstrap-table组件增加固定列功能

需要引入 bootstrap-table-fixed-columns.css和bootstrap-table-fixed-columns.js文件 文件代码: bootstrap-table-fixed-columns.css样式文件代码 .fixed-table-header-columns, .fixed-table-body-columns {position: absolute;background-color: #fff;displa…

企业知识库搭建全流程,中小型企业必看

知识库是企业知识管理和信息查询的重要平台,对企业效率提升,业务流程规范和企业文化建设有着重要的影响。那么,如何为企业搭建一个合适,高效,易用的知识库呢?接下来就为中小型企业详解企业知识库搭建全流程…

C++力扣题目257--二叉树的所有路径

给你一个二叉树的根节点 root ,按 任意顺序 ,返回所有从根节点到叶子节点的路径。 叶子节点 是指没有子节点的节点。 示例 1: 输入:root [1,2,3,null,5] 输出:["1->2->5","1->3"]示例 …

养猫家庭怎么挑选宠物空气净化器?猫用空气净化器推荐来了!

宠物空气净化器在近年来越来越受到关注,它们被宣传为解决宠物家庭空气质量问题的神器。然而,一些人认为宠物空气净化器只是商家们利用人们对宠物的爱而推出的一种所谓的“智商税”,那么作为一位养猫多年的铲屎官,我可以说宠物空气…

【AI视野·今日Sound 声学论文速览 第四十五期】Wed, 10 Jan 2024

AI视野今日CS.Sound 声学论文速览 Wed, 10 Jan 2024 Totally 12 papers 👉上期速览✈更多精彩请移步主页 Daily Sound Papers Masked Audio Generation using a Single Non-Autoregressive Transformer Authors Alon Ziv, Itai Gat, Gael Le Lan, Tal Remez, Felix…

2024 爱分析 · AI 与大模型高峰论坛:和鲸喜获两项殊荣!

1 月 9 日下午,“2024 爱分析 AI 与大模型高峰论坛”在京举办。本次论坛以“智能涌现,价值焕新”为主题,汇聚众多专家学者、实践先驱,共同探讨 AI 与大模型在企业内的新场景、新价值、新路径。论坛中,和鲸科技成功入选…

【数据链路层】802.11无线局域网的基本概述(湖科大慕课自学笔记)

802.11无线局域网基本概述 1:无线局域网(WLAN) 1:基本概述 2:802.11无线局域网可以分为以下两类 有固定基础设施的与无固定基础设施的 固定基础设施是指 我们来举例说明: 2:有固定基础设施…

SAP存放状态的几个常用表

SAP存放状态的几个常用表 在sap中,包括订单、项目、计划、设备主数据等,存在审批流程的业务单据,这些业务对象都会有状态的属性,用来控制和约束该业务当前的操作。 主要的表 JEST:存放了该对象编号的当前状态 JCDS…

蓝奏云获取下载链接js逆向

本期地址如下,使用base64解密获得 aHR0cHM6Ly9meGpkLmxhbnpvdXcuY29tL2l6bkxrMTdncnkyZA 获取最终的下载链接需要经过三次请求获得,如下图 每个请求都包含下一次请求的信息,我们逐步分析请求 第一个请求直接包含了第二次请求的src 第二个请…

团结引擎的安装

团结引擎有多种方式可以安装,具体可以参考团结引擎官方文档,这里我们使用最简单的安装方式,通过团结Hub来安装。 1. 安装 Tuanjie Hub 进入团结引擎官网,点击右上角的【下载Unity】,进入下载界面,选择“下载…