harmony-utils之PreferencesUtil,首选项工具类

简介: `PreferencesUtil` 是 HarmonyOS 工具库 `harmony-utils` 中的首选项工具类,提供便捷的数据缓存与管理功能。支持初始化、存储、获取、删除等操作,并具备订阅数据变更的能力,助力高效开发。

harmony-utils之PreferencesUtil,首选项工具类

harmony-utils 简介与说明


harmony-utils 一款功能丰富且极易上手的HarmonyOS工具库,借助众多实用工具类,致力于助力开发者迅速构建鸿蒙应用。其封装的工具涵盖了APP、设备、屏幕、授权、通知、线程间通信、弹框、吐司、生物认证、用户首选项、拍照、相册、扫码、文件、日志,异常捕获、字符、字符串、数字、集合、日期、随机、base64、加密、解密、JSON等一系列的功能和操作,能够满足各种不同的开发需求。
picker_utils 是harmony-utils拆分出来的一个子库,包含PickerUtil、PhotoHelper、ScanUtil。

下载安装
ohpm i @pura/harmony-utils
ohpm i @pura/picker_utils

  //全局初始化方法,在UIAbility的onCreate方法中初始化 AppUtil.init()
  onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {
    AppUtil.init(this.context);
  }

API方法与使用


init 初始化
 PreferencesUtil.init("my_app_preferences");
put 将数据缓存
PreferencesUtil.put("id", 10000018);
PreferencesUtil.putSync("name", "张三叁");
PreferencesUtil.putSync("bl_nuv", false);
get 获取缓存值
 let id = await PreferencesUtil.get("id", "");
getString 获取string类型的缓存值
let name1 = await PreferencesUtil.getString("name");
let name2 = PreferencesUtil.getStringSync('name');
getNumber 获取number类型的缓存值
let id1 = await PreferencesUtil.getNumber("id");
let id2 = PreferencesUtil.getNumberSync('id');
getBoolean 获取boolean类型的缓存值
let bl1 = await PreferencesUtil.getBoolean("bl_nut");
let bl2 = PreferencesUtil.getBooleanSync('bl_nuv');
has 检查缓存实例中是否包含给定Key的存储键值对
let bl1 = await PreferencesUtil.has("id");
let bl2 = PreferencesUtil.hasSync('name');
delete 删除缓存值
PreferencesUtil.delete("id");
PreferencesUtil.deleteSync("name");
clear 清空缓存
PreferencesUtil.clear();
PreferencesUtil.clearSync();
deletePreferences 从缓存中移出指定的Preferences实例,若Preferences实例有对应的持久化文件,则同时删除其持久化文件。
 PreferencesUtil.deletePreferences(getContext(), "SP_PREFERENCES_MSG");
onChange 订阅数据变更,订阅的Key的值发生变更后,在执行flush方法后,触发callback回调
  private callback: Callback<string> = (value) => {
    LogUtil.error("onChange: " + value);
  }

 PreferencesUtil.onChange(callback);
offChange 取消订阅数据变更
 PreferencesUtil.offChange(callback);
onDataChange 精确订阅数据变更,只有被订阅的key值发生变更后,在执行flush方法后,触发callback回调
  private dataCallback = (data: Record<string, preferences.ValueType>) => {
    for (const keyValue of Object.entries(data)) {
      LogUtil.error("onDataChange: " + keyValue);
    }
  }

  PreferencesUtil.onDataChange(["id", "name"], dataCallback);
offDataChange 取消精确订阅数据变更
PreferencesUtil.offDataChange(["id", "name"], dataCallback);

创作不易,请给童长老点赞👍


https://github.com/787107497/harmony-utils
https://gitee.com/tongyuyan/harmony-utils
OpenHarmony三方库

目录
相关文章
|
XML JavaScript 前端开发
鸿蒙开发(17)---WebView组件
鸿蒙开发(17)---WebView组件
2106 0
鸿蒙开发(17)---WebView组件
|
前端开发 开发者
HarmonyOS实战:自定义时间选择器
在鸿蒙开发中,官方提供的默认时间选择器可能无法满足特定需求。本文分享了自定义时间选择器的实现过程:通过 TextPicker 控件实现年月日及时分的选择,支持默认选中当前时间、精确到时分,并注意闰年计算与日期格式处理。代码中使用 Promise 处理耗时的日期计算,确保显示和逻辑正确。总结指出,尽管看似简单,但需关注时间计算、格式化等细节。快动手试试吧!
497 1
|
编解码 缓存 开发工具
HarmonyOS NEXT实战:字符串工具
本课程讲解如何在HarmonyOS Next中使用ArkTS语言封装字符串工具类,实现字符串空值判断、编码转换、Base64编解码等功能,帮助开发者高效处理字符串操作。
412 1
|
JSON 安全 Java
鸿蒙5开发宝藏案例分享---应用并发设计
本文深入解析鸿蒙并发编程,基于ArkTS多线程模型提供100+实战解决方案。从图片解码加速到折叠屏适配,涵盖生产者-消费者模式与性能调优技巧。文章剖析传统并发痛点,介绍ArkTS的内存隔离、异步I/O和自动扩缩容三大核心理念,并通过代码示例讲解实际场景应用。同时警示常见陷阱如Worker线程泄漏与跨线程修改共享对象,提供安全方案及性能优化工具,助力开发者高效掌握鸿蒙并发开发最佳实践。
R语言分布滞后线性和非线性模型DLM和DLNM建模应用| 系列文章
R语言分布滞后线性和非线性模型DLM和DLNM建模应用| 系列文章
|
Apache 开发者
最受欢迎的三方库之SpinKit
SpinKit 是一款适用于 OpenHarmony/HarmonyOS 的加载动画库,提供多种动画类型与自定义配置,帮助开发者轻松实现美观的加载效果。
334 0
|
存储 数据挖掘 BI
API数据源:轻松接入各类业务系统数据
在数字化转型中,企业面临多样化的数据需求。Quick BI推出API数据源功能,支持广泛的数据接入,包括实时天气、电商交易及内部业务数据,极大丰富了可分析数据范围。该功能提供灵活的连接方式(抽取和直连模式)、多元授权机制(基础认证、前置请求)和自动化数据解析,降低了操作门槛,提升了配置效率。通过动态Token获取等最佳实践,确保数据安全与实时性,满足企业具体业务需求。了解更多,请访问Quick BI官方文档或瓴羊官网。
883 77
|
开发者 容器
25.[HarmonyOS NEXT Column案例五(下)] 精细化列表项设计:多层嵌套布局与视觉层次构建
在上一部分中,我们介绍了垂直列表的基础结构、数据模型设计以及外层Column的实现。本教程将继续深入探讨列表项的内部结构,包括Row布局的实现、图片与文本的样式设置以及嵌套标签的实现方法,帮助开发者掌握更复杂的布局技巧,创建视觉层次分明、信息丰富的产品列表界面。
147 1
|
设计模式 开发者 容器
四、HarmonyOS Next案例展示页面:MainPage深度解析
MainPage.ets是HarmonyOS Next开发者手册应用中的三级页面,它作为具体案例的展示页面,连接了二级导航页面和具体的功能展示。本文将深入分析这个文件的代码结构、UI组件使用以及导航实现,帮助开发者理解HarmonyOS应用的多级页面设计模式。
210 1
|
JSON 生物认证 API
# harmony-utils之WindowUtil,窗口相关工具类
WindowUtil 是 HarmonyOS 工具库 harmony-utils 中的窗口管理工具类,提供丰富 API 实现窗口方向、隐私模式、沉浸式布局、屏幕亮度、常亮、聚焦、触摸状态等控制,提升鸿蒙应用开发效率。
303 0