鸿蒙 next 封装轻量级缓存工具PreferencesUtil
import preferences from '@ohos.data.preferences';
import dataPreferences from '@ohos.data.preferences';
import { AppUtil } from './AppUtil';
type PreferencesValue = string
export class PreferencesUtil {
private constructor() {
}
private static defaultPreferenceName: string = "myPreferences";
private static preferences: preferences.Preferences;
private static getPreferencesSync(): preferences.Preferences {
if (!PreferencesUtil.preferences) {
PreferencesUtil.preferences =
dataPreferences.getPreferencesSync(AppUtil.getContext(), { name: PreferencesUtil.defaultPreferenceName });
}
return PreferencesUtil.preferences;
}
private static async getPreferences(): Promise<preferences.Preferences> {
if (!PreferencesUtil.preferences) {
PreferencesUtil.preferences =
await dataPreferences.getPreferences(AppUtil.getContext(), PreferencesUtil.defaultPreferenceName);
}
return PreferencesUtil.preferences;
}
static putSync(key: string, value: PreferencesValue) {
let preferences = PreferencesUtil.getPreferencesSync();
preferences.putSync(key, value);
preferences.flush();
}
static async put(key: string, value: PreferencesValue) {
let preferences = await PreferencesUtil.getPreferences();
await preferences.put(key, value);
await preferences.flush();
}
static getSync(key: string, defValue: PreferencesValue): PreferencesValue {
let preferences = PreferencesUtil.getPreferencesSync();
return preferences.getSync(key, defValue) as PreferencesValue;
}
static async get(key: string, defValue: PreferencesValue): Promise<PreferencesValue> {
let preferences = await PreferencesUtil.getPreferences();
return preferences.get(key, defValue) as Promise<PreferencesValue>;
}
static getAllSync() {
let preferences = PreferencesUtil.getPreferencesSync();
return preferences.getAllSync();
}
static getStringSync(key: string): string {
return PreferencesUtil.getSync(key, "") as string;
}
static async getString(key: string): Promise<string> {
return (await PreferencesUtil.get(key, "")) as string;
}
static hasSync(key: string) {
return PreferencesUtil.getPreferencesSync().hasSync(key);
}
static async has(key: string) {
let preferences = await PreferencesUtil.getPreferences();
return await preferences.has(key);
}
static deleteSync(key: string) {
let preferences = PreferencesUtil.getPreferencesSync();
preferences.deleteSync(key);
preferences.flush()
}
static async delete(key: string) {
let preferences = await PreferencesUtil.getPreferences();
await preferences.delete(key);
return await preferences.flush()
}
static clearSync() {
let preferences = PreferencesUtil.getPreferencesSync();
preferences.clearSync();
preferences.flush()
}
static async clear() {
let preferences = await PreferencesUtil.getPreferences();
await preferences.clear();
return await preferences.flush()
}
}
用法
1.存储数据
PreferencesUtil.putSync("mykey", "myvalue")
2.获取数据
PreferencesUtil.getStringSync("mykey")
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· NetPad:一个.NET开源、跨平台的C#编辑器
· PowerShell开发游戏 · 打蜜蜂
· 凌晨三点救火实录:Java内存泄漏的七个神坑,你至少踩过三个!