← 返回首页
数据存储

💾 Preferences 轻量级存储

展示如何使用Preferences API进行轻量级数据存储,适用于保存用户设置、主题等简单数据

API级别: API 9+ | 项目路径: HarmonyOS_NEXT/DataManagement/Preferences

📋 项目简介

Preferences示例实现了一个主题桌面应用,支持三种主题切换,并演示了数据持久化功能。

核心功能

💻 核心代码示例

1. 引入Preferences模块

import preferences from '@ohos.data.preferences'

2. 获取Preferences实例

const PREFERENCES_NAME = 'theme.db'
let preferenceTheme: preferences.Preferences | null = null

async getPreferencesFromStorage() {
  let context = getContext(this) as Context
  preferenceTheme = await preferences.getPreferences(context, PREFERENCES_NAME)
}

3. 写入数据

async putPreference(data: string) {
  if (preferenceTheme !== null) {
    await preferenceTheme.put('theme', data)
    await preferenceTheme.flush()  // 持久化到磁盘
  }
}

4. 读取数据

async getPreference(): Promise {
  let theme: string = ''
  if (preferenceTheme !== null) {
    // 第二个参数为默认值
    theme = await preferenceTheme.get('theme', 'default') as string
    return theme
  }
  return theme
}

🔧 API详解

API说明示例
getPreferences()获取实例preferences.getPreferences(context, 'name')
put()写入数据await prefs.put('key', value)
get()读取数据await prefs.get('key', default)
delete()删除数据await prefs.delete('key')
flush()持久化await prefs.flush()

📊 数据类型支持

类型示例
string'hello'
number123
booleantrue/false
array[1, 2, 3]

💡 适用场景

场景推荐方案
用户设置Preferences ✓
应用状态Preferences ✓
主题配置Preferences ✓
大量结构化数据relationalStore
分布式数据distributedDataObject

⚠️ 注意事项

• Preferences数据存储在应用私有目录,其他应用无法访问

• 不适合存储敏感信息

• 频繁调用flush()会影响性能,建议批量操作后再调用

• 需处理可能出现的异常

🔗 参考资料

📎 官方仓库链接