鸿蒙开发 FA模型开发:PageAbility组件

HarmonyOS NEXT应用开发:FA模型开发-PageAbility组件配置 PageAbility的相关配置在config.json配置文件的"module"对象的"abilities"对象中........ 阅读详情

概述

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部分配置项说明

属性名称含义数据类型是否可缺省
icon

表示Ability图标资源文件的索引。取值示例:$media:ability_icon。如果在该Ability的skills属性中,actions的取值包含 “action.system.home”,entities取值中包含"entity.system.home",则该Ability的icon将同时作为应用的icon。如果存在多个符合条件的Ability,则取位置靠前的Ability的icon作为应用的icon。
说明:应用的"icon"和"label"是用户可感知配置项,需要区别于当前所有已有的应用"icon"或"label"(至少有一个不同)。    

字符串
可缺省,缺省值为空。
label

表示Ability对用户显示的名称。取值可以是Ability名称,也可以是对该名称的资源索引,以支持多语言。如果在该Ability的skills属性中,actions的取值包含 “action.system.home”,entities取值中包含"entity.system.home",则该Ability的label将同时作为应用的label。如果存在多个符合条件的Ability,则取位置靠前的Ability的label作为应用的label。
说明: 应用的"icon"和"label"是用户可感知配置项,需要区别于当前所有已有的应用"icon"或"label"(至少有一个不同)。该标签为资源文件中定义的字符串的引用,或以"{}"包括的字符串。该标签最大长度为255字节。

字符串
可缺省,缺省值为空。
skills
表示Ability能够接收的want的特征。
对象数组
可缺省,缺省值为空。

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环境支持全量生命周期回调。

PageAbility的启动模式

启动模式对应PageAbility被启动时的行为,支持单实例模式、多实例模式两种启动模式。

表1 PageAbility的启动模式

启动模式描述说明
singleton单实例模式

每次调用startAbility方法时,如果应用进程中该类型的Ability实例已经存在,则复用已有的实例,系统中只存在唯一一个实例。表现为在最近任务列表中只有一个Ability实例。
典型场景:当用户打开视频播放应用并观看视频,回到桌面后,再次打开视频播放应用,应用仍为回到桌面之前正在观看的视频。

multiton多实例模式

缺省启动模式。每次调用startAbility方法时,都会在应用进程中创建一个新的Ability实例。表现为在最近任务列表中可以看到有多个该类型的Ability实例。
典型场景:当用户打开文档应用,选择新建文档的时候,每次点击新建文档,都会创建一个新的文档任务,在最近任务列表中可以看到多个新建的文档任务。


应用开发者可在config.json配置文件中通过“launchType”配置启动模式。示例如下:

{
  "module": {
    ...
    "abilities": [
      {
        // singleton: 单实例模式
        // multiton: 多实例模式
        "launchType": "multiton",
        ...
      }
    ]
  }
}

启动PageAbility时,对于多实例模式启动,以及单实例模式进行首次启动时,PageAbility生命周期回调 均会被触发。单实例非首次启动时不会再触发onCreate()接口,而是触发onNewWant(),onNewWant()的说明如下表2所示。

表2 单实例启动模式特有的回调函数说明

接口名接口描述
onNewWant(want: Want)单实例启动模式,PageAbility非首次启动时调用onNewWant方法,开发者可以在该方法中获取want,进而根据want做进一步处理。例如,单实例PageAbility迁移场景,指定页面拉起PageAbility场景。

 

【鸿蒙基于API 13实战开发】—— FA模型开发:PageAbility组件实践(一) 通过DevEco Studio开发平台创建PageAbility时,DevEco Studio会在app.js/app.ets中默认生成onCreate()和onDestroy()方法,其他方法需要开发者自行实现。接口说明参见前述章节,创建PageAbility示例如下: 阅读详情

相关推荐

鸿蒙开发基础 —— FA模型开发:PageAbility组件实践(一)

启动Ability的参数包含want,关于want的说明详见 对象间信息传递载体Want ,相应的,隐式启动与显式启动也不在此赘述。PageAbility相关的能力通过featureAbility提供,启动本地Ability通过featureAbility中的startAbility接口实现。FA模型中,可以通过featureAbility的getContext接口获取应用上下文,进而使用上下文提供的能力。停止PageAbility通过featureAbility中的terminateSelf接口实现。

guangxishaoji的博客 654

鸿蒙HarmonyOS FA模型开发:PageAbility组件

PageAbility是HarmonyOS提供用户交互能力的应用组件,其生命周期包含UNINITIALIZED、INITIAL、INACTIVE、ACTIVE和BACKGROUND等状态。开发者需在config.json中配置icon图标、label名称及skills接收特征等属性,其启动模式支持单实例(singleton)和多实例(multiton)两种。生命周期回调包括onCreate()、onDestroy()、onActive()等同步接口,其中单实例模式首次启动触发onCreate(),非首次启动

sy7748的博客 1135

鸿蒙应用开发 FA模型: ServiceAbility组件(一)

ServiceAbility是基于Service模板的后台能力,用于执行音乐播放、文件下载等无界面的后台任务。其生命周期包括onStart初始化、onCommand启动执行、onConnect/onDisconnect连接管理及onStop资源清理。配置需在config.json中声明type为"service",并可选设置backgroundModes定义后台服务类型(如数据传输、音频播放等)。与PageAbility的主要区别在于运行模式(后台持续运行)和配置属性。开发者需通过实现s

sy7748的博客 387

鸿蒙HarmonyOS FA模型开发:PageAbility组件实践(一)

摘要:本文介绍了在DevEco Studio中创建和使用PageAbility的方法。首先说明DevEco Studio会自动生成onCreate()和onDestroy()方法,其他生命周期方法需开发者自行实现。接着展示了MainAbility类示例代码,说明各生命周期方法的功能。然后介绍了config.json中abilities的配置项,包括orientation、name、type等参数。文章还详细讲解了通过featureAbility接口实现的能力操作,包括获取上下文(getContext)、启动

sy7748的博客 442

用SOEM库搞定汇川SV660N伺服电机:一个Linux C程序员的EtherCAT实战笔记

本文详细介绍了如何在Linux系统下使用SOEM库驱动汇川SV660N伺服电机,包括环境搭建、EtherCAT从站设备识别、PDO映射配置、状态机切换与运动控制等关键步骤。通过实战代码示例和常见问题排查指南,帮助开发者快速掌握工业自动化中的EtherCAT通信技术,实现对伺服电机的精准控制。

weixin_29185199的博客 424

vscode+keil嵌入式软件开发全流程

vscode+keil嵌入式软件开发全流程

AspringQ的博客 6781

【鸿蒙基于API 13实战开发】—— FA模型开发:PageAbility组件

PageAbility是包含UI、提供展示UI能力的应用组件,主要用于与用户交互。开发者通过DevEco Studio开发平台创建PageAbility时,DevEco Studio会自动创建相关模板代码。PageAbility相关能力通过单独的featureAbility实现,生命周期相关回调则通过app.js/app.ets中各个回调函数实现。

shangkangba的博客 968

Linux | Ubuntu18.04安装RTX 4060显卡驱动完整教程

本节详细介绍了如何在ubuntu18系统安装4060显卡的驱动。

九七的博客 5159

鸿蒙HarmonyOS FA模型开发:PageAbility组件实践(二)

【摘要】本文介绍了在HarmonyOS中通过PageAbility启动指定页面的两种实现方式。对于单例模式,通过want参数传递目标页面信息,在onNewWant回调中处理路由;对于多实例或首次启动场景,则在onCreate中获取want参数并跳转。两种方式都通过featureAbility.startAbility()启动PageAbility,并通过router.pushUrl()实现页面导航,开发者可根据不同启动模式选择对应方案。文中提供了完整的代码示例,包括参数传递、能力获取和页面跳转的具体实现。

sy7748的博客 386

北斗导航 | 卫星信号捕获跟踪原理解析

卫星信号的捕获与跟踪是导航接收机的"眼睛",其性能直接决定定位精度、动态适应性和抗干扰能力。随着北斗三号全球组网完成,新一代接收机正朝着。两大核心阶段,二者共同构成定位的基础。调制,频谱主瓣宽度达4.092MHz,较传统BPSK调制抗干扰能力提升3dB[38]。的目标持续演进,在自动驾驶、精密农业等领域展现出巨大应用潜力。二维空间中搜索峰值相关能量[4]。卫星导航接收机对信号的处理可分为。北斗三号B1C/B2a信号采用。北斗三号新增的B1C信号采用。

尘世冰封的专栏 773

GNN(图神经网络)的 MATLAB 仿真

图神经网络(Graph Neural Network, GNN)是一种用于处理图结构数据的深度学习模型。GNN 通过聚合节点及其邻居的信息,能够有效捕捉图结构中的复杂关系,广泛应用于社交网络分析、推荐系统、化学分子分析等领域。GNN 通过消息传递机制聚合节点及其邻居的信息,能够有效处理图结构数据。MATLAB 仿真展示了 GNN 的基本流程和节点分类性能,适用于社交网络分析、推荐系统、化学分子分析和知识图谱等多种应用场景。

走向CTO的路上... 837

鸿蒙开发基础 —— FA模型开发:PageAbility组件

PageAbility是包含UI、提供展示UI能力的应用组件,主要用于与用户交互。开发者通过DevEco Studio开发平台创建PageAbility时,DevEco Studio会自动创建相关模板代码。PageAbility相关能力通过单独的featureAbility实现,生命周期相关回调则通过app.js/app.ets中各个回调函数实现。

guangxishaoji的博客 733

南方电网专业面试题(电气类-继电保护)(目录)

南方电网专业面试题(电气类-继电保护)(目录) 这些面试题围绕继电保护的基本概念、工作原理、分类、性能要求,以及变压器、断路器、母线保护、自动重合闸等电力系统关键设备的保护机制和操作原则展开,旨在评估应聘者对电力系统保护和控制策略的深入理解和实际应用能力。

weixin_44808274的博客 2159

HarmonyOS 应用开发之Stage模型启动FA模型PageAbility

本小节介绍Stage模型的两种应用组件如何启动FA模型的PageAbility组件。

1 728

pytest学习和使用19-pytest断言失败后,怎样保持后续的断言继续执行?(pytest-assume)

【代码】pytest学习和使用19-pytes断言失败后,怎样保持后续的断言继续执行?

虫无涯的博客 1390

《派出你的AI同事:WorkBuddy案例实战》062:投研资讯摘要与预警

投研资讯摘要与预警:新闻、公告、行情交给 AI 同事提炼与预警,投研从“刷资讯”变成“读摘要”。

LuckyHanMo的博客 182

鸿蒙开发0基础【PageAbility组件配置】 FA模型开发

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

zhenggaoxiao232的博客 211

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

【鸿蒙基于API 13实战开发】—— FA模型开发:PageAbility组件实践(二)

当PageAbility的启动模式设置为单例时(具体设置方法和典型场景示例见 PageAbility的启动模式 ,缺省情况下是单实例模式),若PageAbility已被拉起,再次启动PageAbility会触发onNewWant回调(即非首次拉起)。应用开发者可以通过want传递启动参数,例如开发者希望指定页面启动PageAbility,可以通过want中的parameters参数传递pages信息,具体示例代码如下:

shangkangba的博客 408

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

【鸿蒙初级知识点】FA模型开发:PageAbility组件

PageAbility是包含UI、提供展示UI能力的应用组件,主要用于与用户交互。开发者通过DevEco Studio开发平台创建PageAbility时,DevEco Studio会自动创建相关模板代码。PageAbility相关能力通过单独的featureAbility实现,生命周期相关回调则通过app.js/app.ets中各个回调函数实现。

2501_90127602的博客 675

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

HarmonyOS实战开发:FA模型绑定Stage模型ServiceExtensionAbility

本文介绍FA模型的三种应用组件如何绑定Stage模型的ServiceExtensionAbility组件。

2401_84194030的博客 970

HarmonyOS实战开发:PageAbility切换(组件切换)

FA模型中PageAbility对应Stage模型中的UIAbility.........

2401_84194030的博客 868

鸿蒙开发实践案例分析——FA模型切换Stage模型组件切换之PageAbility切换

将FA应用中PageAbility的代码迁移到新创建的UIAbility中。FA应用中PageAbility和Stage应用中的UIAbility生命周期基本一致,两者的生命周期详细对比见下表。FA模型中PageAbility对应Stage模型中的UIAbility,PageAbility切换为UIAbility的方法如下。对迁移过来的代码进行调整,主要有以下两部分。1、指定加载页面的方式不同。在Stage应用中 创建UIAbility。

2501_91726491的博客 781

鸿蒙OpenHarmony【PageAbility组件配置】 FA模型开发

ageAbility是包含UI、提供展示UI能力的应用组件,主要用于与用户交互。 开发者通过DevEco Studio开发平台创建PageAbility时,DevEco Studio会自动创建相关模板代码。PageAbility相关能力通过单独的featureAbility实现,生命周期相关回调则通过app.js/app.ets中各个回调函数实现。

adsjgfjha123123的博客 329

鸿蒙开发基础 —— FA模型开发:PageAbility组件实践(二)

当PageAbility的启动模式设置为多实例模式或为首次启动单例模式的PageAbility时(具体设置方法和典型场景示例见 PageAbility的启动模式 ),在调用方PageAbility中,通过want中的parameters参数传递要启动的指定页面的pages信息,调用startAbility()方法启动PageAbility。被调用方可以在onCreate中使用featureAbility的getWant方法获取want,再通过调用router.pushUrl实现启动指定页面。

guangxishaoji的博客 398

【鸿蒙初级知识点】FA模型开发:PageAbility组件实践(一)

启动Ability的参数包含want,关于want的说明详见 对象间信息传递载体Want ,相应的,隐式启动与显式启动也不在此赘述。PageAbility相关的能力通过featureAbility提供,启动本地Ability通过featureAbility中的startAbility接口实现。FA模型中,可以通过featureAbility的getContext接口获取应用上下文,进而使用上下文提供的能力。停止PageAbility通过featureAbility中的terminateSelf接口实现。

2501_90127602的博客 506

鸿蒙开发 FA模型开发:PageAbility组件实践(二)

当PageAbility的启动模式设置为多实例模式或为首次启动单例模式的PageAbility时(具体设置方法和典型场景示例见 PageAbility的启动模式 ),在调用方PageAbility中,通过want中的parameters参数传递要启动的指定页面的pages信息,调用startAbility()方法启动PageAbility。被调用方可以在onCreate中使用featureAbility的getWant方法获取want,再通过调用router.pushUrl实现启动指定页面。

ButcherCS的博客 345
上一篇: 鸿蒙开发 组件:菜单(Menu)
下一篇: 鸿蒙开发 FA模型开发:PageAbility组件实践(二)
普通网友
博客等级 码龄2年 826粉丝 18原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值