DataAbility切换
FA模型中的DataAbility对应Stage模型中的DataShareExtensionAbility。
与ServiceExtensionAbility类似,Stage模型下的DataShareExtensionAbility为系统API,只有系统应用才可以创建。因此,FA模型的DataAbility的切换,对于系统应用和三方应用策略有所不同。下面分别介绍这两种场景。
系统应用DataAbility切换至DataShareExtensionAbility
迁移步骤和PageAbility基本一致。
- 在Stage应用中创建DataShareExtensionAbility。
- 将FA应用中DataAbility的业务代码迁移到新创建的DataShareExtensionAbility中。 DataAbility和DataShareExtensionAbility生命周期对比见下表。
- 开发前请熟悉鸿蒙开发指导文档 :[
gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]FA的DataAbility Stage的DataShareExtensionAbility 对比描述 onInitialized?(info: AbilityInfo): void onCreate?(want: Want, callback: AsyncCallback): void 两者调用时机一致,函数名即入参都不一样,Stage模型下增加了入参want以便开发者在创建时获取参数。 update?(uri: string, valueBucket: rdb.ValuesBucket, predicates: dataAbility.DataAbilityPredicates, callback: AsyncCallback): void update?(uri: string, predicates: dataSharePredicates.DataSharePredicates, value: ValuesBucket, callback: AsyncCallback): void 两者意义和调用时机一致,参数顺序和参数类型略有不同,需要简单改造。 query?(uri: string, columns: Array, predicates: dataAbility.DataAbilityPredicates, callback: AsyncCallback): void query?(uri: string, predicates: dataSharePredicates.DataSharePredicates, columns: Array, callback: AsyncCallback): void; 两者意义和调用时机一致,参数顺序和参数类型略有不同,需要简单改造。 delete?(uri: string, predicates: dataAbility.DataAbilityPredicates, callback: AsyncCallback): void delete?(uri: string, predicates: dataSharePredicates.DataSharePredicates, callback: AsyncCallback): 两者意义和调用时机一致,参数类型略有不同,需要简单改造。 normalizeUri?(uri: string, callback: AsyncCallback): void normalizeUri?(uri: string, callback: AsyncCallback): void 两者意义和调用时机一致,参数也一致。 batchInsert?(uri: string, valueBuckets: Array, callback: AsyncCallback): void batchInsert?(uri: string, values: Array, callback: AsyncCallback): void 两者意义和调用时机一致,参数类型略有不同,需要简单改造。 denormalizeUri?(uri: string, callback: AsyncCallback): void denormalizeUri?(uri: string, callback: AsyncCallback): void 两者意义和调用时机一致,参数也一致。 insert?(uri: string, valueBucket: rdb.ValuesBucket, callback: AsyncCallback): void insert?(uri: string, value: ValuesBucket, callback: AsyncCallback): void 两者意义和调用时机一致,参数类型略有不同,需要简单改造。 openFile?(uri: string, mode: string, callback: AsyncCallback): void NA Stage模型不支持uri跨进程访问,建议通过[want携带FD和文件信息]进行跨进程文件访问。 getFileTypes?(uri: string, mimeTypeFilter: string, callback: AsyncCallback>): void NA Stage模型不支持uri跨进程访问,建议通过[want携带FD和文件信息]进行跨进程文件访问。 getType?(uri: string, callback: AsyncCallback): void NA Stage模型不支持uri跨进程访问,建议通过[want携带FD和文件信息]进行跨进程文件访问。 executeBatch?(ops: Array, callback: AsyncCallback>): void NA DataShareExtensonAbility不提供该接口,开发者需根据业务功能重新实现。 call?(method: string, arg: string, extras: PacMap, callback: AsyncCallback): void NA HarmonyOS与OpenHarmony鸿蒙文档籽料:mau123789是v直接拿DataShareExtensonAbility不提供该接口,开发者需根据业务功能重新实现。

三方应用DataAbility改造为公共模块
Stage模型三方应用不能对其他三方提供数据,应用需要根据具体业务选择切换方案。
| DataAbility业务类型 | 切换DataShareExtension策略 |
|---|---|
| 对三方提供数据 | 需根据业务场景匹配到系统对应的场景化[ExtensionAbility]。 |
| 应用内使用的数据 | 对应用内其他组件提供数据,建议提取公共模块。 |
审核编辑 黄宇
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
组件
+关注
关注
1文章
600浏览量
19065 -
鸿蒙
+关注
关注
60文章
3016浏览量
46163
发布评论请先 登录
相关推荐
热点推荐
UPS不间断电源如何切换?详解三种切换方式与零中断原理
突然断电,电脑黑屏、文件丢失、服务器宕机——这些场景几乎每个人都经历过。为了避免这种情况,越来越多的人开始关注UPS不间断电源。但很多人并不清楚:UPS究竟是如何在市电中断时,快速切换到电池供电
微电网并网与离网切换理论:无缝切换的核心要求
、设备损坏,还可能引发微电网振荡、解列等稳定性问题,甚至影响大电网的安全运行(并网切换场景),西格电力提供智能微电网系统解决方案,咨询服务:1.3.7-5.0.0.4-6.2.0.0。因此,明确无缝切换的核心要求,是设计合理
鸿蒙中Stage模型与FA模型详解
【HarmonyOS 5】鸿蒙中Stage模型与FA模型详解 ##鸿蒙开发能力 ##HarmonyOS SDK应用服务##鸿蒙金融类应用 (
鸿蒙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
鸿蒙开发Ability Kit程序框架服务:DataAbility切换 组件切换
评论