鸿蒙Next中preferences工具类如何使用

在鸿蒙Next开发中,如何使用preferences工具类存储和读取数据?能否提供一个具体的使用示例,包括初始化、保存键值对以及读取数据的完整代码片段?另外,preferences的数据存储路径在哪里,是否支持多进程同步?

2 回复

在鸿蒙Next中,使用preferences存储数据很简单:

  1. 获取实例:

    let prefs = preferences.getPreferencesSync(context, 'myPrefs');
    
  2. 存数据:

    prefs.putSync('key', 'value');
    prefs.flushSync(); // 立即保存
    
  3. 取数据:

    let value = prefs.getSync('key', 'default');
    
  4. 删数据:

    prefs.deleteSync('key');
    

记住:别把密码存这里,它就像把日记放客厅——谁都能看!

更多关于鸿蒙Next中preferences工具类如何使用的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在鸿蒙Next(HarmonyOS NEXT)中,preferences 工具类用于轻量级数据存储,适用于保存应用的配置信息、用户偏好设置等。以下是基本使用方法:

1. 导入模块

import { preferences } from '@kit.ArkData';

2. 获取 Preferences 实例

// 指定文件名(无需后缀)
let context = ... // 获取UIAbilityContext
let prefs = await preferences.getPreferences(context, 'myAppPrefs');

3. 常用操作

写入数据:

// 支持string|number|boolean|Array<number>
await prefs.put('key_string', 'value');
await prefs.put('key_int', 100);
await prefs.put('key_bool', true);
// 提交保存
await prefs.flush();

读取数据:

let strVal = await prefs.get('key_string', 'default');
let intVal = await prefs.get('key_int', 0);
let boolVal = await prefs.get('key_bool', false);

删除数据:

await prefs.delete('key_string');

清空所有数据:

await prefs.clear();

4. 完整示例

import { preferences } from '@kit.ArkData';
import { UIAbilityContext } from '@kit.AbilityKit';

async function demo(context: UIAbilityContext) {
  // 获取实例
  let prefs = await preferences.getPreferences(context, 'appData');
  
  // 存储数据
  await prefs.put('username', 'HarmonyUser');
  await prefs.put('login_count', 5);
  await prefs.flush();
  
  // 读取数据
  let name = await prefs.get('username', 'default');
  let count = await prefs.get('login_count', 0);
  
  // 删除指定键
  await prefs.delete('login_count');
}

注意事项:

  1. 数据默认存储在应用沙箱内,不同应用数据隔离
  2. 键名建议使用有意义的字符串,避免特殊字符
  3. 支持的数据类型有限,复杂对象需序列化为字符串
  4. 频繁操作建议批量处理后再调用flush()

通过以上方法即可实现鸿蒙Next中的轻量数据持久化存储。

回到顶部