HarmonyOS 应用开发之PageAbility组件

PageAbility组件概述

PageAbility是包含UI、提供展示UI能力的应用组件,主要用于与用户交互。

开发者通过DevEco Studio开发平台创建PageAbility时,DevEco Studio会自动创建相关模板代码。PageAbility相关能力通过单独的featureAbility实现,生命周期相关回调则通过app.js/app.ets中各个回调函数实现。

PageAbility组件配置

PageAbility的相关配置在config.json配置文件的"module"对象的"abilities"对象中,"icon"属性表示Ability图标资源文件的索引,"lable"属性表示Ability对用户显示的名称,"skills"属性表示Ability能够接收的want的特征。

表1 PageAbility部分配置项说明

PageAbility的生命周期

PageAbility生命周期是PageAbility被调度到INACTIVE、ACTIVE、BACKGROUND等各个状态的统称。PageAbility生命周期流转及状态说明见如下图1、表1所示。

图1 PageAbility生命周期流转

表1 PageAbility生命周期状态说明

生命周期状态生命周期状态说明
UNINITIALIZED未初始状态,为临时状态,PageAbility被创建后会由UNINITIALIZED状态进入INITIAL状态。
INITIAL初始化状态,也表示停止状态,表示当前PageAbility未运行,PageAbility被启动后由INITIAL态进入INACTIVE状态。
INACTIVE失去焦点状态,表示当前窗口已显示但是无焦点状态。
ACTIVE前台激活状态,表示当前窗口已显示,并获取焦点。
BACKGROUND后台状态,表示当前PageAbility退到后台,PageAbility在被销毁后由BACKGROUND状态进入INITIAL状态,或者重新被激活后由BACKGROUND状态进入ACTIVE状态。

应用开发者可以在app.js/app.ets中重写生命周期相关回调函数,PageAbility生命周期相关回调函数见下表。

表2 PageAbility生命周期回调接口说明

接口名接口描述
onCreate()Ability第一次启动创建Ability时调用onCreate方法,开发者可以在该方法里做一些应用初始化工作。
onDestroy()应用退出,销毁Ability对象前调用onDestroy方法,开发者可以在该方法里做一些回收资源、清空缓存等应用退出前的准备工作。
onActive()Ability切换到前台,并且已经获取焦点时调用onActive方法。
onInactive()Ability失去焦点时调用onInactive方法,Ability在进入后台状态时会先失去焦点,再进入后台。
onShow()Ability由后台不可见状态切换到前台可见状态调用onShow方法,此时用户在屏幕可以看到该Ability。
onHide()Ability由前台切换到后台不可见状态时调用onHide方法,此时用户在屏幕看不到该Ability。

PageAbility生命周期回调与生命周期状态的关系如下图所示。

图2 PageAbility生命周期回调与生命周期状态的关系

说明:

  1. PageAbility的生命周期回调均为同步接口。
  2. 目前app.js环境中仅支持onCreate和onDestroy回调,app.ets环境支持全量生命周期回调。

为了能让大家更好的学习鸿蒙(HarmonyOS NEXT)开发技术,这边特意整理了《鸿蒙开发学习手册》(共计890页),希望对大家有所帮助:https://qr21.cn/FV7h05

《鸿蒙开发学习手册》:

如何快速入门:https://qr21.cn/FV7h05

  1. 基本概念
  2. 构建第一个ArkTS应用
  3. ……

开发基础知识:https://qr21.cn/FV7h05

  1. 应用基础知识
  2. 配置文件
  3. 应用数据管理
  4. 应用安全管理
  5. 应用隐私保护
  6. 三方应用调用管控机制
  7. 资源分类与访问
  8. 学习ArkTS语言
  9. ……

基于ArkTS 开发:https://qr21.cn/FV7h05

  1. Ability开发
  2. UI开发
  3. 公共事件与通知
  4. 窗口管理
  5. 媒体
  6. 安全
  7. 网络与链接
  8. 电话服务
  9. 数据管理
  10. 后台任务(Background Task)管理
  11. 设备管理
  12. 设备使用信息统计
  13. DFX
  14. 国际化开发
  15. 折叠屏系列
  16. ……

鸿蒙开发面试真题(含参考答案):https://qr18.cn/F781PH

鸿蒙开发面试大盘集篇(共计319页):https://qr18.cn/F781PH

1.项目开发必备面试题
2.性能优化方向
3.架构方向
4.鸿蒙开发系统底层方向
5.鸿蒙音视频开发方向
6.鸿蒙车载开发方向
7.鸿蒙南向开发方向

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

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

相关文章

STL —— vector(1)

博主首页: 有趣的中国人 专栏首页: C专栏 本篇文章主要讲解vector使用的相关内容 1. vector简介 vector 是 C 标准库中的一个容器类模板,它提供了动态数组的功能,可以方便地管理和操作元素的集合。下面是关于 vector 的一些基本信…

基于单片机智能家居控制系统设计

**单片机设计介绍,基于单片机智能家居控制系统设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机的智能家居控制系统设计旨在实现家居设备的自动化控制和智能化管理,提高家庭生活的便利性和舒…

PyTorch数据结构

前言:因为最近开始读深度学习代码,主要都是用PyTorch框架,所以来补一些PyTorch基础,先从数据结构入手。 PyTorch数据结构 PyTorchPyTorch数据结构张量属性:维度、轴、形状常见的操作 数据集构造代码DataLoader 模块 参…

Redis 教程系列之Redis 事务(十六)

Redis 事务可以一次执行多个命令, 并且带有以下两个重要的保证: 事务是一个单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。事务是一个原子操作&#x…

2024年03月CCF-GESP编程能力等级认证C++编程八级真题解析

本文收录于专栏《C++等级认证CCF-GESP真题解析》,专栏总目录:点这里。订阅后可阅读专栏内所有文章。 一、单选题(每题 2 分,共 30 分) 第 1 题 为丰富食堂菜谱,炒菜部进行头脑风暴。肉类有鸡肉、牛肉、羊肉、猪肉4种,切法有肉排、肉块、肉末3种,配菜有圆白菜、油菜、…

react useState的初始化函数 初始化值为props时的同步问题 | setState函数的使用与异步更新

文章目录 react setState函数useState()钩子创建state如何根据props更新state值 setState的参数是下一个状态statesetState的参数是更新函数functionsetState异步与同步合成事件setState 实现原理 react setState函数 useState()钩子创建state const [state, setState] useS…

大数据做「AI大模型」数据清洗调优基础篇

关于本文 近期一直在协助做AI大模型数据清洗调优的工作,主要就是使用大数据计算引擎Spark做一些原始数据的清洗工作,整体数据量大约6PB-8PB之间,那么对于整个大数据量的处理性能将是一个重大的挑战,关于具体的调优参数配置项暂时不…

【论文阅读+复现】AniPortrait: Audio-Driven Synthesis of Photorealistic Portrait Animation

AniPortrait:音频驱动的逼真肖像动画合成。 code:Zejun-Yang/AniPortrait: AniPortrait: Audio-Driven Synthesis of Photorealistic Portrait Animation (github.com) paper:[2403.17694] AniPortrait: Audio-Driven Synthesis of Photoreal…

Soot入门学习笔记

Soot 适合参考的文档和教程如下: 北京大学软件分析技术 南京大学软件分析 Tutorials for soot McGill University 198:515 (vt.edu) 比较好的笔记资料: 南京大学《软件分析》课程笔记 比较好的入门作业或者案例: CSCE710 Assignmen…

MySQL8 中文参考翻译完成

MySQL8 中文参考前言和法律声明第一章 一般信息1.1 关于本手册1.2 MySQL 数据库管理系统概述1.2.1 什么是 MySQL?1.2.2 MySQL 的主要特性1.2.3 MySQL 的历史1.3 MySQL 8.0 中的新功能1.4 MySQL 8.0 中新增、弃用或删除的服务器和状态变量和选项1.5 如何报告错误或问…

产品说明书二维码生成的优势:数字化时代的智能选择

随着二维码技术的不断发展,越来越多的企业开始选择使用二维码来展示产品使用说明,以取代传统的纸质说明书。这一趋势不仅符合数字化时代的潮流,更为消费者提供了更便捷、更智能的产品使用体验。以下是产品说明书二维码生成的优势:…

Android WebView的使用与后退键处理

目录 前言首先,我们需要在布局文件中添加webView组件在Activity中获取webView实例,并加载网页内容 前言 webView是Android中常用的组件之一,用于展示网页内容。它可以加载HTML文件、URL链接等网页内容,并提供交互功能。在使用webV…

C#_泛型_委托

文章目录 泛型泛型的使用泛型的约束委托委托的实例化多播委托委托的调用内置委托类型委托练习泛型委托Lambda表达式(进阶)上期习题答案本期习题 泛型 泛型(Generic) 是一种规范,它允许我们使用占位符来定义类和方法,编译器会在编…

Linux进程概念(下)

1. 进程的状态 为了弄明白正在运行的进程是什么意思,我们需要知道进程的不同状态。一个进程可以有几个状态(在Linux内核里,进程有时候也叫做任务)。 下面的状态在kernel源代码里定义: /* * The task state array is…

数对 离散化BIT

先把公式变个形&#xff0c;然后直接BIT 枚举右端点查询左端点累加答案 离散化好题&#xff0c;注意BIT写的时候右端点的范围是离散化区间的大小 #include<bits/stdc.h> using namespace std; #define int long long using ll long long; using pii pair<int,int&…

【ZZULIOJ】1011: 圆柱体表面积(Java)

目录 题目描述 输入 输出 样例输入 Copy 样例输出 Copy code 题目描述 输入圆柱体的底面半径r和高h&#xff0c;计算圆柱体的表面积并输出到屏幕上。要求定义圆周率为如下宏常量 #define PI 3.14159 输入 输入两个实数&#xff0c;为圆柱体的底面半径r和高h。 输出 输…

国内好用的chatGPT和AI绘图工具

分享一个比较好用的AI 分享一个比较好用的AI&#xff0c;只是需要开通会员&#xff0c;目前官网的价格是&#xff1a;298&#xff0c;开通之后可以使用chatgpt4、AI绘画、图片融合等等&#xff01;不开通的话是可以免费使用15次的&#xff0c;下面是一些介绍图片&#xff01;链…

UE5数字孪生系列笔记(三)

C创建Pawn类玩家 创建一个GameMode蓝图用来加载我们自定义的游戏Mode新建一个Pawn的C&#xff0c;MyCharacter类作为玩家&#xff0c;新建一个相机组件与相机臂组件&#xff0c;box组件作为根组件 // Fill out your copyright notice in the Description page of Project Set…

【python】网络编程socket TCP UDP

文章目录 socket常用方法TCP客户端服务器UDP客户端服务器网络编程就是实现两台计算机的通信 互联网协议族 即通用标准协议,任何私有网络只要支持这个协议,就可以接入互联网。 socket socke模块的socket()函数 import socketsock = socket.socket(Address Family,

Solidity Uniswap V2 Router swapTokensForExactTokens

最初的router合约实现了许多不同的交换方式。我们不会实现所有的方式&#xff0c;但我想向大家展示如何实现倒置交换&#xff1a;用未知量的输入Token交换精确量的输出代币。这是一个有趣的用例&#xff0c;可能并不常用&#xff0c;但仍有可能实现。 GitHub - XuHugo/solidit…