HarmonyOS开发之生命周期

news/2024/9/17 19:08:22/ 标签: harmonyos, 华为

文章目录

  • 一、应用生命周期
  • 二、页面生命周期
  • 二、组件生命周期


提示:以下是本篇文章正文内容,下面案例可供参考

一、应用生命周期

可以在项目目录 entryability/EntryAbility.tes 看到整个应用的生命周期

import hilog from '@ohos.hilog';
import UIAbility from '@ohos.app.ability.UIAbility';
import Window from '@ohos.window';
import abilityAccessCtrl from '@ohos.abilityAccessCtrl';
// @ts-ignore
// 集成云端SDK
import json from '../agconnect-services.json';
// @ts-ignore
import { initialize } from '@hw-agconnect/hmcore';// 引入云函数
import cloud from "@hw-agconnect/cloud"//以下为生命周期执行过程   按照生命周期执行顺序描述
export default class EntryAbility extends UIAbility {//onCreate 实例创建执行,进行一些应用初始化方法//1.数据准备、变量初始化等 未涉及到UI界面onCreate() {// 初始化使用SDKinitialize(this.context,json);hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onCreate');}//2. 当应用的窗口被创建时调用。应用开始展示用户界面//窗口分为主窗口和子窗口(主窗口子窗口创建时,都会调用)//主窗口:通常在应用启动时创建,用户最初看到的窗口。//子窗口:可能在应用运行过程中动态创建,用于显示附加内容或功能(悬浮框)onWindowStageCreate(windowStage: Window.WindowStage) {let page = 'login';// 云函数提供的getCurrentUser 判断是否登录cloud.auth().getCurrentUser().then(user=>{// 登录跳转首页否则跳转登录页if(user){page= 'Index'}windowStage.loadContent('pages/'+page, (err, data) => {if (err.code) {hilog.error(0x0000, 'testTag', 'Failed to load the content. Cause: %{public}s', JSON.stringify(err) ?? '');return;}hilog.info(0x0000, 'testTag', 'Succeeded in loading the content. Data: %      {public}s', JSON.stringify(data) ?? '');});})}//3.应用从后台切换到前台时调用 (在UIAbility的UI可见之前)//恢复应用的正常功能,重新启动暂停的任务。//此回调适用于主窗口和子窗口,确保窗口内容在前台时的正常显示和交互。//可以在onForeground()回调中申请系统需要的资源.//或者重新申请在onBackground()中释放的资源onForeground() {// Ability has brought to foregroundhilog.info(0x0000, 'testTag', '%{public}s', 'Ability onForeground');}//4.当应用从前台切换到后台时调用 (UIAbility的UI完全不可见之后)//暂停或优化后台运行的任务,节省资源。//此回调适用于主窗口和子窗口,暂停窗口内容的更新或动画等。//释放UI不可见时无用的资源,或者在此回调中执行较为耗时的操作,例如状态保存等onBackground() {// Ability has back to backgroundhilog.info(0x0000, 'testTag', '%{public}s', 'Ability onBackground');}//5.当主窗口或子窗口被销毁时调用
//清理与窗口相关的资源,解绑事件监听器。适用于窗口级别的资源清理
onWindowStageDestroy() {// Main window is destroyed, release UI related resourceshilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageDestroy');}//6.当应用完全退出时调用
//彻底清理应用级别的所有资源,释放内存,关闭数据库连接等。
//应用进程结束后,所有资源将被释放onDestroy() {hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onDestroy');}}

二、页面生命周期

页面生命周期,即被@Entry装饰的组件生命周期,提供以下生命周期接口:
此处引用

onPageShow:页面每次显示时触发一次,包括路由过程、应用进入前台等场景,仅@Entry装饰的自定义组件生效。


onPageHide:页面每次隐藏时触发一次,包括路由过程、应用进入后台等场景,仅@Entry装饰的自定义组件生效。


onBackPress:当用户点击返回按钮时触发,仅@Entry装饰的自定义组件生效。

@Entry
@Component
struct IndexComponent {onPageShow() {//页面每次显示时触发console.info('IndexComponent onPageShow');}onPageHide() {//页面每次隐藏时触发console.info('IndexComponent onPageHide');}onBackPress() {//当用户点击返回按钮时触发console.info('IndexComponent onBackPress');}build() {Column() {Text('Hello World').fontSize(30).margin(30)}.width('100%')}
}

二、组件生命周期

 aboutToAppear(){//组件即将出现时回调该接口,具体时机为在创建自定义组件的新实例后// ,在执行其build()函数之前执行。}aboutToDisappear(){//在自定义组件析构销毁之前执行}

http://www.ppmy.cn/news/1523512.html

相关文章

linux~~监控子进程创建新的线程

目录 1.wait函数介绍 2.wait函数演示 3.pthread_create函数介绍 3.1总体介绍 3.2参数介绍 3.3返回值说明 3.4进程线程关系演示 4.pthread_join函数 5.pthread_create函数第四个参数 6.创建两个线程 6.1创建方法 6.2线程进程对比 1.wait函数介绍 wststus参数&#xf…

久久派搭建风电系统网站(基于mariadb数据库)

久久派搭建风电系统网站 1、安装mariadb2、设置root账号密码3、设置MariaDB开机自启4、允许远程登录5、还原数据库6、扩容swap7、拷贝数据8、运行系统方法1:通过sh脚本运行方法2:直接运行jar包 文中所需网盘资料及讲解视频在文章末尾哦1。 本文中参考资料…

关于生成式 AI 创业公司出海,谷歌和 VC 们这么说

2024 Google Cloud 中国创投峰会将在 9 月 25 日于北京、上海、深圳三地同步举行。我们诚挚邀请初创公司创业者,参加这场为 AI 企业量身打造的科技盛宴!无论你关注的是生成式 AI、机器学习,还是数据分析,这里都将为你带来最前沿的…

OpenAI gym: Trouble installing Atari dependency (Mac OS X)

题意: 使用OpenAI Gym库时,安装Atari环境可能会遇到一些依赖问题,尤其是在Mac OS X系统上 问题背景: Im new to OpenAI gym. Ive successfully installed OpenAI gym on my Mac OS X (High Sierra 10.13.3) laptop and made a D…

第 4 章:跨域

第 4 章&#xff1a;跨域 1. 同源策略 同源策略(Same-Origin Policy)最早由 Netscape 公司提出&#xff0c;是浏览器的一种安全策略。同源&#xff1a; 协议、域名、端口号 必须完全相同。违背同源策略就是跨域。满足同略策略url可以简写 1.1 同略策略案例 index.html <…

【Hot100】LeetCode—279. 完全平方数

目录 1- 思路动态规划 完全背包 2- 实现⭐279. 完全平方数——题解思路 3- ACM 实现 原题链接&#xff1a;279. 完全平方数 1- 思路 动态规划 完全背包 完全平方数就是物品&#xff08;可以无限件使用&#xff09;&#xff0c;凑个正整数n就是背包&#xff0c;问凑满这个背…

【QT Creator】基本使用

一、常见问题 解答可见以下链接&#xff1a; https://www.cnblogs.com/xia-weiwen/p/10074882.html#title3.1 ** 有关控制台选择构建套件缺失的解决方法可见以下链接 https://blog.csdn.net/xuxu_123_/article/details/131257928 二、如何创建第一个QT项目 第一步&#xf…

13. stats查看threejs渲染帧率

three.js每执行WebGL渲染器.render()方法一次&#xff0c;就在canvas画布上得到一帧图像&#xff0c;不停地周期性执行.render()方法就可以更新canvas画布内容&#xff0c;一般场景越复杂往往渲染性能越低&#xff0c;也就是每秒钟执行.render()的次数越低。 通过stats.js库可…

Web大学生网页作业成品——动漫蜡笔小新网页设计与实现(HTML+CSS)(4个页面)

&#x1f389;&#x1f389;&#x1f389; 常见网页设计作业题材有**汽车、环保、明星、文化、国家、抗疫、景点、人物、体育、植物、公益、图书、节日、游戏、商城、旅游、家乡、学校、电影、动漫、非遗、动物、个人、企业、美食、婚纱、其他**等网页设计题目, 可满足大学生网…

docker 安装NextERP

有很多方式&#xff1a; 一 docker sudo docker run -itd -p 8016:80 -v ERPNext_db:/var/lib/mysql -v ERPNext_sites:/home/frappe/frappe-bench/sites --name ERPNext lvxj11/erpnext:latest二 git clone https://e.coding.net/yuanerp/yuanerp/frappe_docker.gitcp exa…

[linux] 报错 ModuleNotFoundError: No module named ‘llama‘

from llama import Llama ModuleNotFoundError: No module named llama 解决&#xff1a; llama/requirements.txt at main meta-llama/llama GitHub pip install fairscale pip install fire pip install sentencepiece

C++复习day08

一、C11 1.列表初始化 在C98中&#xff0c;标准允许使用花括号{}对数组或者结构体元素进行统一的列表初始值设定。比如&#xff1a; struct Point {int _x;int _y; }; int main() {int array1[] { 1, 2, 3, 4, 5 };int array2[5] { 0 };Point p { 1, 2 };return 0; }C11扩…

ASP.NET MVC 迅速集成 SignalR

在现代 Web 应用程序中&#xff0c;实时更新数据是一个常见需求。本文将详细介绍如何在 ASP.NET MVC 项目中使用 SignalR 实现定时任务操作数据库并将数据更新到网页。我们将逐步讲解如何配置 SignalR、创建定时任务、操作数据库以及在前端显示实时数据。 目录 项目初始化安装…

基于C++实现一个房贷计算小程序(含代码)

房贷计算程序&#xff0c;主要实现以下功能&#xff1a; 用户友好的界面&#xff1a;使用文本菜单来引导用户选择功能。支持不同还款频率&#xff1a;例如每季度还款、每半年还款等。支持贷款提前还款&#xff1a;计算提前还款对总支付利息的影响。详细的还款计划表&#xff1…

llama神经网络的结构,llama-3-8b.layers=32 llama-3-70b.layers=80; 2000汉字举例说明

AI大模型全套学习资料 “最先掌握AI的人&#xff0c;将会比较晚掌握AI的人有竞争优势”。 这句话&#xff0c;放在计算机、互联网、移动互联网的开局时期&#xff0c;都是一样的道理。 我在一线互联网企业工作十余年里&#xff0c;指导过不少同行后辈。帮助很多人得到了学习和成…

知行合一!

1. 明确知识和行动的关系 知识&#xff1a;是对事物的正确理解和认知。 行动&#xff1a;是将这些理解付诸实践的行为。 关系&#xff1a;知识的真正意义在于实践。仅有理论知识而没有行动是不完整的&#xff0c;只有在行动中体现知识&#xff0c;才能说是“知道”。 2. 从内心…

华为OD机试真题 - 抢7游戏(Python/JS/C/C++ 2024 D卷 100分)

华为OD机试 2024E卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试真题&#xff08;Python/JS/C/C&#xff09;》。 刷的越多&#xff0c;抽中的概率越大&#xff0c;私信哪吒&#xff0c;备注华为OD&#xff0c;加入华为OD刷题交流群&#xff0c;…

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

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

MySQL JDBC URL各参数详解

jdbc:mysql://localhost:3306/test?userroot&password123456&useUnicodetrue&characterEncodinggbk &autoReconnecttrue&failOverReadOnlyfalse&serverTimezoneUTC&drivercom.mysql.cj.jdbc.Driver 参数名称参数说明缺省值user指定用于连接数据库…

暑期学习总结

iOS学习 前言无限轮播图换头像网络请求按钮的configuration属性总结 前言 经过暑期培训&#xff0c;完成了五个项目的仿写&#xff0c;在项目中将零散的内容经过实践学习&#xff0c;有了不少收获&#xff0c;因此来总结一下比较重要的内容。 无限轮播图 这是写项目的第一个难…