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

HarmonyOS/OpenHarmony应用开发-FA模型综述

FA模型整体架构

 

HarmonyOS用户程序的开发本质上就是开发Ability。HarmonyOS系统是通过对Ability调度,结合系统提供的一致性调度契约对Ability进行生命周期管理,从而实现对用户程序的调度。

FA模型的几种类型

PageAbility:具备ArkUI实现的Ability,是用户具体可见并可以交互的Ability实例。

ServiceAbility:是Ability一种,但是没有UI,提供其他Ability调用自定义的服务,在后台运行。

DataAbility:是没有UI的Ability,提供其他Ability进行数据的增删查服务,在后台运行。

FormAbility:是卡片Ability,是一种界面展示形式。

FA模型的几种类型的生命周期

 PageAbility的生命周期 

UNINITIALIZED :未初始状态,为临时状态,PageAbility被创建后会由UNINITIALIZED状态进入INITIAL状态。

INITIAL :初始化状态,也表示停止状态,表示当前PageAbility未运行,PageAbility被启动后由INITIAL态进入ACTIVE状态。

INACTIVE :失去焦点状态,表示当前窗口已显示但是无焦点状态。

ACTIVE :前台激活状态,表示当前窗口已显示,并获取焦点。

BACKGROUND :后台状态,表示当前PageAbility退到后台,PageAbility在被销毁后由BACKGROUND状态进入INITIAL状态,或者重新被激活后由BACKGROUND状态进入ACTIVE状态。

Service Ability的生命周期 

接口名描述
onStart该方法在创建Service的时候调用,用于Service的初始化。在Service的整个生命周期只会调用一次,调用时传入的Want应为空。
onCommand在Service创建完成之后调用,该方法在客户端每次启动该Service时都会调用,开发者可以在该方法中做一些调用统计、初始化类的操作。
onConnect在Ability和Service连接时调用。
onDisconnect在Ability与绑定的Service断开连接时调用。
onStop在Service销毁时调用。Service应通过实现此方法来清理任何资源,如关闭线程、注册的侦听器等。

Data Ability的生命周期 

接口名描述
onInitialized在Ability初始化调用,通过此回调方法执行rdb等初始化操作。
update更新数据库中的数据。
query查询数据库中的数据。
delete删除一条或多条数据。
normalizeUri对uri进行规范化。一个规范化的uri可以支持跨设备使用、持久化、备份和还原等,当上下文改变时仍然可以引用到相同的数据项。
batchInsert向数据库中插入多条数据。
denormalizeUri将一个由normalizeUri生产的规范化uri转换成非规范化的uri。
insert向数据中插入一条数据。
openFile打开一个文件。
getFileTypes获取文件的MIME类型。
getType获取uri指定数据相匹配的MIME类型。
executeBatch批量操作数据库中的数据。
call自定义方法。

Form Ability的生命周期 

接口名描述
onCreate(want: Want): formBindingData.FormBindingData卡片提供方接收创建卡片的通知接口。
onCastToNormal(formId: string): void卡片提供方接收临时卡片转常态卡片的通知接口。
onUpdate(formId: string): void卡片提供方接收更新卡片的通知接口。
onVisibilityChange(newStatus: { [key: string]: number }): void卡片提供方接收修改可见性的通知接口。
onEvent(formId: string, message: string): void卡片提供方接收处理卡片事件的通知接口。
onDestroy(formId: string): void卡片提供方接收销毁卡片的通知接口。
onAcquireFormState?(want: Want): formInfo.FormState卡片提供方接收查询卡片状态的通知接口。

参考文档:

文档中心
*附件:HarmonyOSOpenHarmony应用开发-FA模型综述.docx

相关文章:

  • Vue中的diff算法深度解析
  • redis常用数据结构基本命令
  • 公路交叉数(POJ3067)-树状数组解决逆序对
  • k8s删除node
  • 使用SpringBoot快速构建Web API
  • vue 如何获取路由详细内容信息
  • 【数据库系统】数据更新
  • 【视觉高级篇】23 # 如何模拟光照让3D场景更逼真?(上)
  • itss是什么证书
  • 排序算法-计数排序、桶排序、基数排序
  • postgresql 11.2+gis+pgpool 4.2.2 离线安装步骤
  • 项目管理(如何进行项目风险管理)
  • Watch事件介绍_java培训
  • Debezium系列之:快速了解Debezium 2.0.0.Final新的特性
  • RocketMq: Windows环境-单机部署和多种主从集群场景部署
  • 三家前装出货超2万台,激光雷达明年「放量」是大概率事件
  • 如何在Windows AD域中驻留ACL后门
  • JavaScript大作业 制作简单的程序员个人博客网站(web前端网页制作课作业)
  • 基于鹰优化算法和粒子群优化算法结合焊接梁设计,拉伸/压缩,压力容器,悬臂梁设计的应用(Matlab代码实现)
  • 行业沙龙第四期丨企业供应链协同的数字化解痛之道
  • 电加热油锅炉工作原理_电加热导油
  • 大型电蒸汽锅炉_工业电阻炉
  • 燃气蒸汽锅炉的分类_大连生物质蒸汽锅炉
  • 天津市维修锅炉_锅炉汽化处理方法
  • 蒸汽汽锅炉厂家_延安锅炉厂家
  • 山西热水锅炉厂家_酒店热水 锅炉
  • 蒸汽锅炉生产厂家_燃油蒸汽发生器
  • 燃煤锅炉烧热水_张家口 淘汰取缔燃煤锅炉
  • 生物质锅炉_炉
  • 锅炉天然气_天燃气热风炉