0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

鸿蒙开发Ability Kit程序框架服务:DataAbility切换 组件切换

jf_46214456 来源:jf_46214456 作者:jf_46214456 2024-06-28 14:08 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

DataAbility切换

FA模型中的DataAbility对应Stage模型中的DataShareExtensionAbility。

与ServiceExtensionAbility类似,Stage模型下的DataShareExtensionAbility为系统API,只有系统应用才可以创建。因此,FA模型的DataAbility的切换,对于系统应用和三方应用策略有所不同。下面分别介绍这两种场景。

系统应用DataAbility切换至DataShareExtensionAbility

迁移步骤和PageAbility基本一致。

  1. 在Stage应用中创建DataShareExtensionAbility。
  2. 将FA应用中DataAbility的业务代码迁移到新创建的DataShareExtensionAbility中。 DataAbility和DataShareExtensionAbility生命周期对比见下表。
  3. 开发前请熟悉鸿蒙开发指导文档 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]
    FA的DataAbilityStage的DataShareExtensionAbility对比描述
    onInitialized?(info: AbilityInfo): voidonCreate?(want: Want, callback: AsyncCallback): void两者调用时机一致,函数名即入参都不一样,Stage模型下增加了入参want以便开发者在创建时获取参数。
    update?(uri: string, valueBucket: rdb.ValuesBucket, predicates: dataAbility.DataAbilityPredicates, callback: AsyncCallback): voidupdate?(uri: string, predicates: dataSharePredicates.DataSharePredicates, value: ValuesBucket, callback: AsyncCallback): void两者意义和调用时机一致,参数顺序和参数类型略有不同,需要简单改造。
    query?(uri: string, columns: Array, predicates: dataAbility.DataAbilityPredicates, callback: AsyncCallback): voidquery?(uri: string, predicates: dataSharePredicates.DataSharePredicates, columns: Array, callback: AsyncCallback): void;两者意义和调用时机一致,参数顺序和参数类型略有不同,需要简单改造。
    delete?(uri: string, predicates: dataAbility.DataAbilityPredicates, callback: AsyncCallback): voiddelete?(uri: string, predicates: dataSharePredicates.DataSharePredicates, callback: AsyncCallback):两者意义和调用时机一致,参数类型略有不同,需要简单改造。
    normalizeUri?(uri: string, callback: AsyncCallback): voidnormalizeUri?(uri: string, callback: AsyncCallback): void两者意义和调用时机一致,参数也一致。
    batchInsert?(uri: string, valueBuckets: Array, callback: AsyncCallback): voidbatchInsert?(uri: string, values: Array, callback: AsyncCallback): void两者意义和调用时机一致,参数类型略有不同,需要简单改造。
    denormalizeUri?(uri: string, callback: AsyncCallback): voiddenormalizeUri?(uri: string, callback: AsyncCallback): void两者意义和调用时机一致,参数也一致。
    insert?(uri: string, valueBucket: rdb.ValuesBucket, callback: AsyncCallback): voidinsert?(uri: string, value: ValuesBucket, callback: AsyncCallback): void两者意义和调用时机一致,参数类型略有不同,需要简单改造。
    openFile?(uri: string, mode: string, callback: AsyncCallback): voidNAStage模型不支持uri跨进程访问,建议通过[want携带FD和文件信息]进行跨进程文件访问。
    getFileTypes?(uri: string, mimeTypeFilter: string, callback: AsyncCallback>): voidNAStage模型不支持uri跨进程访问,建议通过[want携带FD和文件信息]进行跨进程文件访问。
    getType?(uri: string, callback: AsyncCallback): voidNAStage模型不支持uri跨进程访问,建议通过[want携带FD和文件信息]进行跨进程文件访问。
    executeBatch?(ops: Array, callback: AsyncCallback>): voidNADataShareExtensonAbility不提供该接口,开发者需根据业务功能重新实现。
    call?(method: string, arg: string, extras: PacMap, callback: AsyncCallback): voidNAHarmonyOSOpenHarmony鸿蒙文档籽料:mau123789是v直接拿
    DataShareExtensonAbility不提供该接口,开发者需根据业务功能重新实现。

搜狗高速浏览器截图20240326151547.png

三方应用DataAbility改造为公共模块

Stage模型三方应用不能对其他三方提供数据,应用需要根据具体业务选择切换方案。

DataAbility业务类型切换DataShareExtension策略
对三方提供数据需根据业务场景匹配到系统对应的场景化[ExtensionAbility]。
应用内使用的数据对应用内其他组件提供数据,建议提取公共模块。

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 组件
    +关注

    关注

    1

    文章

    600

    浏览量

    19065
  • 鸿蒙
    +关注

    关注

    60

    文章

    3016

    浏览量

    46163
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    从拆解看本质:音频4进1出切换器如何实现高保真音质与多设备切换

    切换
    深圳市纳祥科技有限公司
    发布于 :2026年04月15日 15:57:48

    UPS不间断电源如何切换?详解三种切换方式与零中断原理

    突然断电,电脑黑屏、文件丢失、服务器宕机——这些场景几乎每个人都经历过。为了避免这种情况,越来越多的人开始关注UPS不间断电源。但很多人并不清楚:UPS究竟是如何在市电中断时,快速切换到电池供电
    的头像 发表于 04-07 10:08 926次阅读
    UPS不间断电源如何<b class='flag-5'>切换</b>?详解三种<b class='flag-5'>切换</b>方式与零中断原理

    微电网并网与离网切换理论:无缝切换的核心要求

    、设备损坏,还可能引发微电网振荡、解列等稳定性问题,甚至影响大电网的安全运行(并网切换场景),西格电力提供智能微电网系统解决方案,咨询服务:1.3.7-5.0.0.4-6.2.0.0。因此,明确无缝切换的核心要求,是设计合理
    的头像 发表于 03-19 11:05 466次阅读
    微电网并网与离网<b class='flag-5'>切换</b>理论:无缝<b class='flag-5'>切换</b>的核心要求

    基于开源鸿蒙的视频播放开发样例

    在开源鸿蒙生态建设中,多媒体能力是构建丰富用户体验的核心要素。本开发样例针对视频播放场景,聚焦开源鸿蒙原生媒体框架,通过Video组件实现视
    的头像 发表于 08-19 10:41 1785次阅读
    基于开源<b class='flag-5'>鸿蒙</b>的视频播放<b class='flag-5'>开发</b>样例

    【HarmonyOS 5】金融应用开发鸿蒙组件实践

    【HarmonyOS 5】金融应用开发鸿蒙组件实践 ##鸿蒙开发能力 ##HarmonyOS SDK应用
    的头像 发表于 07-11 18:20 1120次阅读
    【HarmonyOS 5】金融应用<b class='flag-5'>开发</b><b class='flag-5'>鸿蒙</b><b class='flag-5'>组件</b>实践

    鸿蒙中Stage模型与FA模型详解

    【HarmonyOS 5】鸿蒙中Stage模型与FA模型详解 ##鸿蒙开发能力 ##HarmonyOS SDK应用服务##鸿蒙金融类应用 (
    的头像 发表于 07-07 11:50 1067次阅读

    鸿蒙5开发宝藏案例分享---在线短视频流畅切换

    “别卷了!鸿蒙官方早把‘性能优化外挂’塞你手里了,就藏在开发者联盟的【最佳实践】里!” 兄弟们,最近在鸿蒙开发者联盟里扒文档时, 无意间挖到个宝藏分区——【最佳实践】 **。好家伙!几
    发表于 06-12 11:31

    使用DevEcoStudio 开发、编译鸿蒙 NEXT_APP 以及使用中文插件

    的一站式集成开发环境(IDE),专为鸿蒙操作系统(HarmonyOS Next)应用和服务开发设计 DevEco Studio,掌握基本操作和开发
    发表于 06-11 17:18

    FA模型的DataAbility切换介绍

    开发者需根据业务功能重新实现。 三方应用DataAbility改造为公共模块 Stage模型三方应用不能对其他三方提供数据,应用需要根据具体业务选择切换方案。 DataAbility
    发表于 06-06 08:10

    FA模型和Stage模型API切换概述

    API切换概述 FA模型和Stage模型由于线程模型和进程模型的差异,部分接口仅在FA模型下才能使用,针对这部分接口在SDK的接口中有FAModelOnly的标记,用于提醒开发者这部分接口仅能
    发表于 06-06 06:29

    从FA模型切换到Stage模型时:module的切换说明

    form_config.json。 srcLanguageAbility开发语言的类型。/Stage模型不支持。 srcPath该标签标识Ability对应的JS组件代码路径。srcEntry该标签标识
    发表于 06-05 08:16

    FA模型的ServiceAbility的切换介绍

    ,应用可以根据具体业务选择切换方案。 业务类型切换策略对其他三方应用提供服务需根据业务场景匹配到系统对应的场景化ExtensionAbility。 应用内:前台运行时公共使用可以将该组件
    发表于 06-05 07:24

    FA模型访问Stage模型DataShareExtensionAbility说明

    DataShareHelper的接口。但是这种方法需要开发者修改原客户端代码的URI,做不到无感知切换。 因此DataAbilityHelper不能仅依赖URI的前缀决定访问DataAbility还是
    发表于 06-04 07:53

    如何将一个FA模型开发的声明式范式应用切换到Stage模型

    为app.json5和module.json5。 组件切换:PageAbility/ServiceAbility/DataAbility切换为UIAbility和ExtensionAb
    发表于 06-04 06:22

    DataAbility组件概述介绍

    DataAbility组件概述 DataAbility,即\"使用Data模板的Ability\",主要用于对外部提供统一的数据访问抽象,不提供用户交互界面
    发表于 05-28 08:19