类似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
      }
    })
Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐