preferences工具类封装

preferences工具类封装

HarmonyOS
2024-05-26 17:50:25
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
落月无痕

在使用preferences存储和删除数据的时候,一般都要先使用data_preferences.getPreferences(context)获取preferences对象然后再对数据进行操作,这样会使代码比较冗余。

为了简化代码,这里封装了一个preferences工具类,示例代码如下:

import data_preferences from '@ohos.data.preferences' 
  
const PREFERENCES_NAME = "my_pre" 
  
export default class PreUtil { 
  private static instance: PreUtil; 
  private preferences; 
  
  private constructor(context) { 
    this.getPre(context) 
  } 
  
  // 获取单例对象 
  public  static getInstance(context) { 
    if (this.instance == null) { 
      this.instance = new PreUtil(context) 
    } 
    return this.instance 
  } 
  
  // 获取preferences对象 
  getPre(context) { 
    let promise = data_preferences.getPreferences(context, PREFERENCES_NAME) 
    promise.then((preferences) => { 
      console.info("PreUtil Get preferences successfully.") 
      this.preferences = preferences 
    }).catch((err) => { 
      console.info("PreUtil Get preferences failed. err:" + err) 
    }) 
  } 
  
  // 保存数据 
  putVal(key: string, val) { 
    let promise = this.preferences.put(key, val) 
      promise.then(() => { 
        console.info("PreUtil Put value of " + key + " successfully.") 
        let promise = this.preferences.flush() 
        promise.then(() => { 
        console.info("PreUtil Flushed to file successfully.") 
        }).catch((err) => { 
          console.info("PreUtil Flush to file failed, err: " + err) 
        }) 
    }).catch((err) => { 
      console.info("PreUtil Put value of startup failed, err: " + err) 
    }) 
  } 
  
  // 获取数据 
  getVal(key: string, defaultVal) { 
    let promise = this.preferences.get(key, defaultVal) 
    promise.then((value) => { 
      console.info("PreUtil Get value of " + key + " is " + value) 
    }).catch((err) => { 
      console.info("PreUtil Get value of " + key + " failed, err: " + err) 
    }) 
  } 
  
  // 删除数据 
  deleteVal(key: string) { 
    let promiseDel = this.preferences.delete(key) 
    promiseDel.then(() => { 
      console.info("PreUtil Deleted key " + key + " successfully.") 
    }).catch((err) => { 
      console.info("PreUtil Deleted key " + key + " failed with err:" + err) 
    }) 
  } 
}
分享
微博
QQ
微信
回复
2024-05-27 22:38:25
相关问题
HarmonyOS 需要一个axios封装工具
369浏览 • 1回复 待解决
如何封装一个通用的commonEvent工具
2205浏览 • 1回复 待解决
HarmonyOS 是否有封装的数据库工具
463浏览 • 1回复 待解决
HarmonyOS 如何封装页面
877浏览 • 1回复 待解决
鸿蒙-有没有缓存工具
6285浏览 • 1回复 待解决
HarmonyOS color argb工具问题
672浏览 • 1回复 待解决
工具里怎么调用startAbility?
5233浏览 • 1回复 待解决
如何在工具中获取Context
2484浏览 • 1回复 待解决
日志工具的使用方法
872浏览 • 1回复 待解决
HarmonyOS有mimeType的工具吗?
645浏览 • 1回复 待解决
HarmonyOS 开发中需要的工具
734浏览 • 1回复 待解决
工具里 怎么跳转或打开页面呢?
4280浏览 • 1回复 待解决
能否支持json转实体工具
1403浏览 • 1回复 待解决
上下文工具的方法有哪些?
679浏览 • 1回复 待解决
HarmonyOS 工具自定义弹窗方案咨询
446浏览 • 1回复 待解决