DataAbility切換
FA模型中的DataAbility對應(yīng)Stage模型中的DataShareExtensionAbility。
與ServiceExtensionAbility類似,Stage模型下的DataShareExtensionAbility為系統(tǒng)API,只有系統(tǒng)應(yīng)用才可以創(chuàng)建。因此,F(xiàn)A模型的DataAbility的切換,對于系統(tǒng)應(yīng)用和三方應(yīng)用策略有所不同。下面分別介紹這兩種場景。
系統(tǒng)應(yīng)用DataAbility切換至DataShareExtensionAbility
遷移步驟和PageAbility基本一致。
- 在Stage應(yīng)用中創(chuàng)建DataShareExtensionAbility。
- 將FA應(yīng)用中DataAbility的業(yè)務(wù)代碼遷移到新創(chuàng)建的DataShareExtensionAbility中。 DataAbility和DataShareExtensionAbility生命周期對比見下表。
- 開發(fā)前請熟悉鴻蒙開發(fā)指導(dǎo)文檔 :[
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 兩者調(diào)用時機一致,函數(shù)名即入?yún)⒍疾灰粯樱琒tage模型下增加了入?yún)ant以便開發(fā)者在創(chuàng)建時獲取參數(shù)。 update?(uri: string, valueBucket: rdb.ValuesBucket, predicates: dataAbility.DataAbilityPredicates, callback: AsyncCallback): void update?(uri: string, predicates: dataSharePredicates.DataSharePredicates, value: ValuesBucket, callback: AsyncCallback): void 兩者意義和調(diào)用時機一致,參數(shù)順序和參數(shù)類型略有不同,需要簡單改造。 query?(uri: string, columns: Array, predicates: dataAbility.DataAbilityPredicates, callback: AsyncCallback): void query?(uri: string, predicates: dataSharePredicates.DataSharePredicates, columns: Array, callback: AsyncCallback): void; 兩者意義和調(diào)用時機一致,參數(shù)順序和參數(shù)類型略有不同,需要簡單改造。 delete?(uri: string, predicates: dataAbility.DataAbilityPredicates, callback: AsyncCallback): void delete?(uri: string, predicates: dataSharePredicates.DataSharePredicates, callback: AsyncCallback): 兩者意義和調(diào)用時機一致,參數(shù)類型略有不同,需要簡單改造。 normalizeUri?(uri: string, callback: AsyncCallback): void normalizeUri?(uri: string, callback: AsyncCallback): void 兩者意義和調(diào)用時機一致,參數(shù)也一致。 batchInsert?(uri: string, valueBuckets: Array, callback: AsyncCallback): void batchInsert?(uri: string, values: Array, callback: AsyncCallback): void 兩者意義和調(diào)用時機一致,參數(shù)類型略有不同,需要簡單改造。 denormalizeUri?(uri: string, callback: AsyncCallback): void denormalizeUri?(uri: string, callback: AsyncCallback): void 兩者意義和調(diào)用時機一致,參數(shù)也一致。 insert?(uri: string, valueBucket: rdb.ValuesBucket, callback: AsyncCallback): void insert?(uri: string, value: ValuesBucket, callback: AsyncCallback): void 兩者意義和調(diào)用時機一致,參數(shù)類型略有不同,需要簡單改造。 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不提供該接口,開發(fā)者需根據(jù)業(yè)務(wù)功能重新實現(xiàn)。 call?(method: string, arg: string, extras: PacMap, callback: AsyncCallback): void NA HarmonyOS與OpenHarmony鴻蒙文檔籽料:mau123789是v直接拿
DataShareExtensonAbility不提供該接口,開發(fā)者需根據(jù)業(yè)務(wù)功能重新實現(xiàn)。
三方應(yīng)用DataAbility改造為公共模塊
Stage模型三方應(yīng)用不能對其他三方提供數(shù)據(jù),應(yīng)用需要根據(jù)具體業(yè)務(wù)選擇切換方案。
DataAbility業(yè)務(wù)類型 | 切換DataShareExtension策略 |
---|---|
對三方提供數(shù)據(jù) | 需根據(jù)業(yè)務(wù)場景匹配到系統(tǒng)對應(yīng)的場景化[ExtensionAbility]。 |
應(yīng)用內(nèi)使用的數(shù)據(jù) | 對應(yīng)用內(nèi)其他組件提供數(shù)據(jù),建議提取公共模塊。 |
審核編輯 黃宇
-
組件
+關(guān)注
關(guān)注
1文章
505瀏覽量
17802 -
鴻蒙
+關(guān)注
關(guān)注
57文章
2309瀏覽量
42740
發(fā)布評論請先 登錄
相關(guān)推薦
評論