往期鸿蒙5.0全套实战文章必看:(文中附带全栈鸿蒙5.0学习资料)
@ohos.data.sendablePreferences (共享用户首选项)
共享用户首选项为应用提供Key-Value键值型的数据处理能力,支持应用持久化轻量级数据,并对其修改和查询。
数据存储形式为键值对,键的类型为字符串型,值的存储数据类型包括number、string、boolean、bigint以及可序列化的object。
共享用户首选项的持久化文件存储在preferencesDir路径下,创建preferences对象前,需要保证preferencesDir路径可读写。
共享用户首选项可以在ArkTS并发实例间(包括主线程、TaskPool&Worker工作线程)传递,传递的行为是引用传递,性能优于普通的用户首选项。
说明
本模块首批接口从API version 12开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
共享用户首选项无法保证进程并发安全,会有文件损坏和数据丢失的风险,不支持在多进程场景下使用。
导入模块
import { sendablePreferences } from '@kit.ArkData';
常量
元服务API: 从API version 12开始,该接口支持在元服务中使用。
系统能力: SystemCapability.DistributedDataManager.Preferences.Core
| 名称 | 参数类型 | 可读 | 可写 | 说明 |
|---|---|---|---|---|
| MAX_KEY_LENGTH | number | 是 | 否 | Key的最大长度限制为1024个字节。 |
| MAX_VALUE_LENGTH | number | 是 | 否 | Value的最大长度限制为16MB。 |
sendablePreferences.getPreferences
getPreferences(context: Context, options: Options): Promise<Preferences>
获取Preferences实例,使用Promise异步回调。
元服务API: 从API version 12开始,该接口支持在元服务中使用。
系统能力: SystemCapability.DistributedDataManager.Preferences.Core
参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| context | Context | 是 | 应用上下文。 |
| options | Options | 是 | 与Preferences实例相关的配置选项。 |
返回值:
| 类型 | 说明 |
|---|---|
| Promise<Preferences> | Promise对象,返回Preferences实例。 该实例继承ISendable,可以在ArkTS并发实例间(包括主线程、TaskPool&Worker工作线程)传递,传递的行为是引用传递。 |
错误码:
以下错误码的详细介绍。
| 错误码ID | 错误信息 |
|---|---|
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
| 801 | Capability not supported. |
| 15500000 | Inner error. |
| 15501001 | The operations is supported in stage mode only. |
| 15501002 | Invalid dataGroupId. |
示例:
import { UIAbility } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { window } from '@kit.ArkUI';
let preferences: sendablePreferences.Preferences;
class EntryAbility extends UIAbility {
onWindowStageCreate(windowStage: window.WindowStage) {
let options: sendablePreferences.Options = { name: 'myStore' };
let promise = sendablePreferences.getPreferences(this.context, options);
promise.then((object: sendablePreferences.Preferences) => {
preferences = object;
console.info("Succeeded in getting preferences.");
}).catch((err: BusinessError) => {
console.error(`Failed to get preferences. code: ${err.code}, message: ${err.message}`);
})
}
}
sendablePreferences.getPreferencesSync
getPreferencesSync(context: Context, options: Options): Preferences
获取Preferences实例,此为同步接口。
元服务API: 从API version 12开始,该接口支持在元服务中使用。
系统能力: SystemCapability.DistributedDataManager.Preferences.Core
参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| context | Context | 是 | 应用上下文。 |
| options | Options | 是 | 与Preferences实例相关的配置选项。 |
返回值:
| 类型 | 说明 |
|---|---|
| Preferences | 返回Preferences实例。 该实例继承ISendable,可以在ArkTS并发实例间(包括主线程、TaskPool&Worker工作线程)传递,传递的行为是引用传递。 |
错误码:
以下错误码的详细介绍。
| 错误码ID | 错误信息 |
|---|---|
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
| 801 | Capability not supported. |
| 15500000 | Inner error. |
| 15501001 | The operations is supported in stage mode only. |
| 15501002 | Invalid dataGroupId. |
示例:
import { UIAbility } from '@kit.AbilityKit';
import { window } from '@kit.ArkUI';
let preferences: sendablePreferences.Preferences;
class EntryAbility extends UIAbility {
onWindowStageCreate(windowStage: window.WindowStage) {
let options: sendablePreferences.Options = { name: 'myStore' };
preferences = sendablePreferences.getPreferencesSync(this.context, options);
}
}
sendablePreferences.deletePreferences
deletePreferences(context: Context, options: Options): Promise<void>
从缓存中移出指定的Preferences实例,若Preferences实例有对应的持久化文件,则同时删除其持久化文件。使用Promise异步回调。
调用该接口后,不建议再使用旧的Preferences实例进行数据操作,否则会出现数据一致性问题。
元服务API: 从API version 12开始,该接口支持在元服务中使用。
系统能力: SystemCapability.DistributedDataManager.Preferences.Core
参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| context |

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



