目录

HarmonyOS鸿蒙学习笔记18类似Android-SharedPreferences保存数据

HarmonyOS鸿蒙学习笔记(18)类似Android SharedPreferences保存数据

类似Android SharedPreferences保存数据

前言

android 系统由 SharedPreferences 用来保存数据, HarmonyOS 也有类似的手段保存一些数据,释放用法如下

引入dataStorage和featureAbility

引入 @ohos.data.storage@ohos.ability.featureAbility 两个包,本篇博文版本是3.1.6.6

//3.1.6.6版本
import dataStorage from '@ohos.data.storage';
//3.1.6.6版本
import featureAbility from '@ohos.ability.featureAbility'

@Entry
@Component
struct MyPage {
}

保存数据

1、先通过 featureAbility 获取上下文。

2、再通过上下文的 getFilesDir 获取路径,路径为/data/user/0/yourPackageName/files

3、调用dataStoragew完成数据存储

  //异步操作
  async saveData() {
    //获取上下文
    var context = featureAbility.getContext()
    //获取路径:/data/user/0/com.example.savedata/files
    var path = await context.getFilesDir()
    let storage = dataStorage.getStorageSync(path + '/myStore')
    storage.putSync("myData", "false")
    类似于SharePreference的apply()
    storage.flushSync()
  }

读数据

异步获取数据

  async getData() {
    var context = featureAbility.getContext()
    var path = await context.getFilesDir()
    let storage = dataStorage.getStorageSync(path + '/myStore')
    let result = storage.getSync("myData", "true");//第二个参数为默认值
    return result === 'true' ? true : false;
  }

因为getData方法是异步的,我们可以这么调用getData方法:

getData().then((value) => {
      if (value) {
       //doSomething
      }
    })