鸿蒙 Next 用户首选项使用指南
鸿蒙 Next 的用户首选项(@ohos.data.preferences)为应用提供了便捷的轻量级数据持久化解决方案,以键值对形式存储数据,支持数字型、字符型、布尔型及它们的数组类型。以下是其详细使用方法:
一、导入模块与了解常量
- 导入模块
- 使用
import { preferences } from '@kit.ArkData';
导入用户首选项模块。
- 使用
- 常量说明
MAX_KEY_LENGTH
限制键的最大长度为 1024 字节,MAX_VALUE_LENGTH
限制值的最大长度为 16 * 1024 * 1024 字节。
二、获取 Preferences 实例
- 基本获取方式(API version 9 及以上)
getPreferences(context, name, callback)
和getPreferences(context, name)
:传入应用上下文(如 FA 模型的featureAbility.getContext()
或 Stage 模型的UIAbility
中的this.context
)和实例名称,可选择使用callback
异步回调或Promise
异步回调获取Preferences
实例。例如在 FA 模型中:
import { featureAbility } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';
let context = featureAbility.getContext();
let dataPreferences: preferences.Preferences | null = null;
preferences.getPreferences(context,'myStore', (err: BusinessError, val: preferences.Preferences) => {
if (err) {
console.error("Failed to get preferences. code =" + err.code + ", message =" + err.message);
return;
}
dataPreferences = val;
console.info("Succeeded in getting preferences.");
});
- 带配置选项获取方式(API version 10 及以上)
getPreferences(context, options, callback)
和getPreferences(context, options)
:传入包含实例名称(如{ name:'myStore' }
)等配置选项的对象,同样支持两种异步回调方式获取实例,错误码处理更丰富。getPreferencesSync(context, options)
(API version 10 及以上):同步获取Preferences
实例,在特定场景下可确保操作顺序,但需注意同步操作可能影响性能。
三、删除 Preferences 实例
- 基本删除方式(API version 11 及以上)
deletePreferences(context, name, callback)
和deletePreferences(context, name)
:通过上下文和实例名称删除实例及其持久化文件,使用异步回调(callback
或Promise
)。调用后建议将实例置为null
,不支持与其他首选项接口并发调用。
- 带配置选项删除方式(API version 10 及以上)
deletePreferences(context, options, callback)
和deletePreferences(context, options)
:根据配置选项执行删除操作,错误码包含更多情况,如Only supported in stage mode
和The data group id is not valid
。
四、从缓存移出 Preferences 实例
- 移出缓存实例(API version 11 及以上)
removePreferencesFromCache(context, name, callback)
和removePreferencesFromCache(context, name)
:移出指定缓存实例,之后再次获取将重新读取持久化文件,异步回调(callback
或Promise
),操作后需置实例为null
,处理相应错误码。
总之,在使用鸿蒙 Next 用户首选项时,需注意其不保证进程并发安全,不适合多进程场景。开发者应根据实际需求合理选择接口,并正确处理错误码和实例状态,以确保数据操作的准确性和稳定性。
标签:preferences,name,用户,callback,实例,context,首选项,Preferences From: https://www.cnblogs.com/hongmengos/p/18613933