HarmonyOS 应用开发之ExtensionAbility组件

ExtensionAbility组件是基于特定场景(例如服务卡片、输入法等)提供的应用组件,以便满足更多的使用场景。

每一个具体场景对应一个 ExtensionAbilityType,开发者只能使用(包括实现和访问)系统已定义的类型。各类型的ExtensionAbility组件均由相应的系统服务统一管理,例如InputMethodExtensionAbility组件由输入法管理服务统一管理。

当前系统已定义的ExtensionAbility类型如下表所示。

说明:

  • “是否允许三方应用实现”是指:对于一类ExtensionAbility,三方应用能否继承该ExtensionAbility父类实现自己的业务逻辑。
  • “是否允许三方应用访问”是指:有些ExtensionAbility会对外提供一些服务,这些ExtensionAbility可能允许三方访问,也可能不允许。“Y”表示允许,“N”表示不允许,“NA”表示不涉及对外服务。

对于系统应用,不受下表约束,允许实现系统已定义的各类ExtensionAbility,也允许访问提供的各类对外服务。

已支持ExtensionAbility类型功能描述是否允许三方应用实现是否允许三方应用访问
FormExtensionAbilityFORM类型的ExtensionAbility组件,用于提供 服务卡片 的相关能力。YN
WorkSchedulerExtensionAbilityWORK_SCHEDULER类型的ExtensionAbility组件,用于提供 延迟任务的相关能力。YNA
InputMethodExtensionAbilityINPUT_METHOD类型的ExtensionAbility组件,用于实现 输入法应用 的开发。YY
AccessibilityExtensionAbilityACCESSIBILITY类型的ExtensionAbility组件,用于实现 无障碍扩展服务 的开发。YNA
BackupExtensionAbilityBACKUP类型的ExtensionAbility组件,用于提供 备份及恢复应用数据 的能力。YNA
DriverExtensionAbilityDRIVER类型的ExtensionAbility组件,用于提供 驱动相关扩展框架。YY

访问指定类型的ExtensionAbility组件

所有类型的ExtensionAbility组件均不能被应用直接启动,而是由相应的系统管理服务拉起,以确保其生命周期受系统管控,使用时拉起,使用完销毁。ExtensionAbility组件的调用方无需关心目标ExtensionAbility组件的生命周期。

以 InputMethodExtensionAbility 组件为例进行说明,如下图所示,调用方应用发起对InputMethodExtensionAbility组件的调用,此时将先调用输入法管理服务,由输入法管理服务拉起 InputMethodExtensionAbility 组件,返回给调用方,同时开始管理其生命周期。

图1 使用InputMethodExtensionAbility组件

实现指定类型的ExtensionAbility组件

以实现卡片 FormExtensionAbility 为例进行说明。卡片框架提供了 FormExtensionAbility 基类,开发者通过派生此基类(如MyFormExtensionAbility),实现回调(如创建卡片的onCreate()回调、更新卡片的onUpdateForm()回调等)来实现具体卡片功能,具体见开发指导见 服务卡片 。

卡片FormExtensionAbility实现方不用关心使用方何时去请求添加、删除卡片,FormExtensionAbility实例及其所在的ExtensionAbility进程的整个生命周期,都是由卡片管理系统服务FormManagerService进行调度管理。

说明: 同一应用内的所有同类型的ExtensionAbility运行在同一独立进程(除ServiceExtensionAbility、DataShareExtensionAbility外),跟UIAbility组件不在同一进程,Stage模型的进程模型请参见 进程模型 。

为了能让大家更好的学习鸿蒙(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.hqwc.cn/news/577001.html

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

相关文章

如何缩短职场人与人之间的差距?答案或许就隐藏在一纸社科院与杜兰大学能源管理硕士学位之中

你是否曾惊叹于同事某某的飞速进步,短短两年内连升三级,如同职场上的彗星划破夜空?每当看到他们晋升的喜讯在群里传播,你的内心是否也曾涌起一股难以名状的涟漪?与你一同踏入公司的伙伴,如今已是经理级别&a…

postgresql多选功能实现

一、背景介绍 在一所乡村小学,教师资源紧张,所以会出现一个教师身兼多职的情况,既是语文老师又是数学老师甚至还是体育老师,这个系统就是为各个班级分配老师,这样一个场景实现 二、代码实现及效果 后端country_teac…

基于springboot实现校园周边美食探索及分享平台系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现园周边美食探索及分享平台系统演示 摘要 美食一直是与人们日常生活息息相关的产业。传统的电话订餐或者到店消费已经不能适应市场发展的需求。随着网络的迅速崛起,互联网日益成为提供信息的最佳俱渠道和逐步走向传统的流通领域,传统的…

Java学习记录第十三天

面向对象编程 核心思想就是OOP(面向对象编程) 面向过程&面向对象 面向过程思想 步骤清晰简单,第一步做什么,第二步做什么... 面对过程适合处理一些较为简单的问题 面向对象思想 物以类聚,分类的思维模式&…

Oracle 中部分不兼容对象迁移到 OceanBase 的处理方式

本文总结分析了 3 种 Oracle 对象和 OB 对象不兼容时的处理方法和提前统计发现的操作方式,在迁移前提前发现这类问题能有效避免在迁移过程中报错的问题。 作者:余振兴,爱可生 DBA 团队成员,热衷技术分享、编写技术文档。 爱可生开…

C++从入门到精通——缺省参数

缺省参数 前言一、缺省参数概念二、缺省参数分类位置参数的缺省参数全缺省参数半缺省参数 关键字参数的缺省参数函数指针的缺省参数lambda表达式 三、缺省参数的具体代码展示main.cpp 前言 缺省参数是在函数定义时指定的默认值,当调用函数时未提供该参数的值时&…

【Android Handler】从源码出发,一步步窥探Handler在Java层的数据结构关系和执行原理

文章目录 Example for useLooperHandler sendMessagemsg插入链表头Message p mMessages;msg.next p;mMessages msg; msg插入链表中间Message p mMessages;prev p;p p.next;msg.next p;prev.next msg; LooperpreparelooploopOncelooper和message的关系next message和han…

修改 RabbitMQ 默认超时时间

MQ客户端正常运行,突然就报连接错误, 错误信息写的很明确,是客户端连接超时。 不过很疑虑,为什么会出现连接超时呢?代码没动过,网络也ok,也设置了心跳和重连机制。 最终在官网中找到了答案&am…

AIGC重塑金融 | 大模型在金融行业的应用场景和落地路径

作者:林建明 来源:IT阅读排行榜 本文摘编自《AIGC重塑金融:AI大模型驱动的金融变革与实践》,机械工业出版社出版 目录 01 大模型在金融领域的 5 个典型应用场景 02 大模型在金融领域应用所面临的风险及其防范 03 AIGC 技术的科…

SAP gui 组服务器 提示 Error service sapmsPRD unknown

/etc/hosts 追加IP地址和域名的配对关系 /etc/services 追加 sapms[sid] 3601/tcp

ctf-36C3解析

一、环境 unbentu 这道题给了docker环境,gethub上面自己找 一个好用的linux全局切换梯子proxychains 二、开始解析 2.1初始 2.2编译 docker build . 2.3代理设置完毕 我试了一下代理还是不行,我们换源尝试一下 RUN sed -i s/deb.debian.org/mirro…

7 AOP事务管理

文章目录 6.1 Spring事务简介6.1.1 相关概念介绍6.1.2 转账案例-需求分析6.1.3 转账案例-环境搭建步骤1:准备数据库表步骤2:创建项目导入jar包步骤3:根据表创建模型类步骤4:创建Dao接口步骤5:创建Service接口和实现类步骤6:添加jdbc.properties文件步骤7:创建JdbcConfig配置类步…