harmony 鸿蒙DataAbility Switching
DataAbility Switching
The DataAbility component in the FA model corresponds to the DataShareExtensionAbility component in the stage model.
The DataShareExtensionAbility class provides system APIs. Only system applications can create DataShareExtensionAbility instances. Therefore, DataAbility switching adopts different policies for system applications and third-party applications.
Switching a DataAbility for a System Application
The procedure for switching a DataAbility for a system application is similar to the procedure of PageAbility switching.
Create a DataShareExtensionAbility in the stage model.
Migrate the DataAbility code to the DataShareExtensionAbility.
The table below describes the lifecycle comparison of the DataAbility and DataShareExtensionAbility.
|DataAbility|DataShareExtensionAbility|Comparison Description|
|——–|——–|——–|
|onInitialized?(info: AbilityInfo): void|onCreate?(want: Want, callback: AsyncCallback<void>): void
|The two methods have the same invoking time but different input parameters. In the stage model, the want parameter is added so that you can obtain parameters during creation.|
|update?(uri: string, valueBucket: rdb.ValuesBucket, predicates: dataAbility.DataAbilityPredicates, callback: AsyncCallback<number>): void|update?(uri: string, predicates: dataSharePredicates.DataSharePredicates, value: ValuesBucket, callback: AsyncCallback<number>): void|The two methods have the same meaning and invoking time, but slightly different parameter sequence and parameter type. A simple reconstruction is required.|
|query?(uri: string, columns: Array<string>, predicates: dataAbility.DataAbilityPredicates, callback: AsyncCallback<ResultSet>): void|query?(uri: string, predicates: dataSharePredicates.DataSharePredicates, columns: Array<string>, callback: AsyncCallback<Object>): void;|The two methods have the same meaning and invoking time, but slightly different parameter sequence and parameter type. A simple reconstruction is required.|
|delete?(uri: string, predicates: dataAbility.DataAbilityPredicates, callback: AsyncCallback<number>): void|delete?(uri: string, predicates: dataSharePredicates.DataSharePredicates, callback: AsyncCallback<number>):|The two methods have the same meaning and invoking time, but slightly different parameter type. A simple reconstruction is required.|
|normalizeUri?(uri: string, callback: AsyncCallback<string>): void|normalizeUri?(uri: string, callback: AsyncCallback<string>): void|The two methods have the same meaning, invoking time, and parameters.|
|batchInsert?(uri: string, valueBuckets: Array<rdb.ValuesBucket>, callback: AsyncCallback<number>): void|batchInsert?(uri: string, values: Array<ValuesBucket>, callback: AsyncCallback<number>): void|The two methods have the same meaning and invoking time, but slightly different parameter type. A simple reconstruction is required.|
|denormalizeUri?(uri: string, callback: AsyncCallback<string>): void|denormalizeUri?(uri: string, callback: AsyncCallback<string>): void|The two methods have the same meaning, invoking time, and parameters.|
|insert?(uri: string, valueBucket: rdb.ValuesBucket, callback: AsyncCallback<number>): void|insert?(uri: string, value: ValuesBucket, callback: AsyncCallback<number>): void|The two methods have the same meaning and invoking time, but slightly different parameter type. A simple reconstruction is required.|
|openFile?(uri: string, mode: string, callback: AsyncCallback<number>): void|NA|The stage model does not support cross-process URI access. You are advised to use the want parameter to carry the file descriptor and file information for cross-process file access.|
|getFileTypes?(uri: string, mimeTypeFilter: string, callback: AsyncCallback<Array<string>>): void|NA|The stage model does not support cross-process URI access. You are advised to use the want parameter to carry the file descriptor and file information for cross-process file access.|
|getType?(uri: string, callback: AsyncCallback<string>): void|NA|The stage model does not support cross-process URI access. You are advised to use the want parameter to carry the file descriptor and file information for cross-process file access.|
|executeBatch?(ops: Array<DataAbilityOperation>, callback: AsyncCallback<Array<DataAbilityResult>>): void|NA|This method is not provided in the stage model. You need to implement the functionality based on service functions.|
|call?(method: string, arg: string, extras: PacMap, callback: AsyncCallback<PacMap>): void|NA|This method is not provided in the stage model. You need to implement the functionality based on service functions.|
Switching a DataAbility for a Third-Party Application
In the stage model, third-party applications cannot provide data services for other third-party applications. You can select a switching solution based on your service requirements.
Service Type | Switching Solution |
---|---|
Providing data for third-party applications | Match a scenario-specific ExtensionAbility. |
Providing data within the application | Extract the component code as a common module for other components to use. |
你可能感兴趣的鸿蒙文章
harmony 鸿蒙Using Explicit Want to Start an Application Component
harmony 鸿蒙Using Implicit Want to Open a Website
harmony 鸿蒙AbilityStage Component Container
harmony 鸿蒙Accessing a DataAbility
harmony 鸿蒙Accessing a DataShareExtensionAbility from the FA Model
harmony 鸿蒙AccessibilityExtensionAbility
harmony 鸿蒙Common action and entities Values
- 所属分类: 后端技术
- 本文标签:
热门推荐
-
2、 - 优质文章
-
3、 gate.io
-
8、 golang
-
9、 openharmony
-
10、 Vue中input框自动聚焦