HarmonyOS持久化存储数据Preference

embedded/2024/10/22 14:40:02/

Preference首选项

  • 首选项:首选项为应用提供Key-Value键值型的数据处理能力,支持应用持久化轻量级数据,并对其修改和查询。数据存储形式为键值对,键的类型为字符串型,值的存储数据类型包括数字型、字符型、布尔型以及这3种类型的数组类型。

Demo记录APP首次启动

  • 通常用于首次启动后弹出隐私协议弹窗,然后记录后,下次启动不在弹窗。

在这里插入图片描述

  • 调用页面
import SpUtils from './utils/SpUtils'@Entry
@Component
struct PagePreference {@State msg: string = ""onPageShow(): void {this.msg = "当前数据" + SpUtils.isFirst()}build() {Column() {Button("保存数据").id('PagePreferenceHelloWorld').margin({ top: 20 }).fontSize(20).fontWeight(FontWeight.Bold).onClick(() => {SpUtils.setFirst()this.msg = "保存数据"})Button("获取数据").id('PagePreferenceHelloWorld').margin({ top: 20 }).fontSize(20).fontWeight(FontWeight.Bold).onClick(() => {this.msg = "获取数据" + SpUtils.isFirst()})Button("清空数据").id('PagePreferenceHelloWorld').margin({ top: 20 }).fontSize(20).fontWeight(FontWeight.Bold).onClick(() => {this.msg = "清空数据"SpUtils.clearData()})Text(this.msg).fontSize(25).margin({ top: 20 })}.height('100%').width('100%')}
}
  • 工具类SpUtils
import preferences from '@ohos.data.preferences'export default class SpUtils {private static KEY_DATA = "key_data"private static SP_NAME = "data"private static sp: preferences.Preferences = preferences.getPreferencesSync(getContext(this), {name: SpUtils.SP_NAME})//设置启动状态static setFirst() {SpUtils.sp.putSync(SpUtils.KEY_DATA, false)SpUtils.sp.flush()}//是否首次启动static isFirst(): boolean {let data = SpUtils.sp.getSync(SpUtils.KEY_DATA, true) as booleanreturn data}//清空该表中的所有数据static clearData() {SpUtils.sp.clearSync()SpUtils.sp.flush()}
}

http://www.ppmy.cn/embedded/86712.html

相关文章

pinia安装及简介

pinia简介 基本特点 轻量级:Pinia相比于传统的Vuex,体积更小,性能更好,只有大约1KB左右。 简化API:Pinia简化了状态管理库的使用方法,抛弃了Vuex中的mutations,只保留了state、getters和actions…

Qt源码交叉编译带openssl的Qt版本

一.背景 近期项目由于对接的后台服务是https的,之前交叉编译的Qt是不带openssl的,为了能支持https,必须要重新编译Qt。 二.环境 环境准备: Ubuntu版本 :18.04; openssl 版本:1.1.1.g&#xff1b…

玩转CSS:用ul li +JS 模拟select,避坑浏览器不兼容。

玩转CSS:用ul li JS 模拟select,避坑浏览器不兼容。 在前端的工作中,经常会遇到 selcet控件,但我们用css来写它的样式时候,总是不那么令人满意,各种浏览器不兼容啊有没有? 那么,我…

MICA:面向复杂嵌入式系统的混合关键性部署框架

背景 在嵌入式场景中,虽然 Linux 已经得到了广泛应用,但并不能覆盖所有需求,例如高实时、高可靠、高安全的场合。这些场合往往是实时操作系统的用武之地。有些应用场景既需要 Linux 的管理能力、丰富的生态,又需要实时操作系统的高…

Boost搜索引擎:关键词搜索模块的构建

关键词搜索模块是基于索引构建模块编写的。 搜索模块: 搜索模块是在服务器构建索引之后进行的,在构建好的索引的服务器上进行关键词搜索。 首先将用户提供的搜索内容进行,关键词分割,将分割好的关键词存放到一个数组中&#xf…

爬职业热度--兼职cat

免责声明:本文仅做技术交流与学习...请勿不正当使用... 循环页数爬取 import pandas as pd import requests from lxml import etree # 初始化一个空的 DataFrame df pd.DataFrame() data_list []headers {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Wi…

(数据结构)二叉树

1.树型结构 1.1.概念 树是一种非线性的数据结构,它是由n(n>0)个有限节点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点: 有…

xLua | xLua Framework | 1 打包

0. 热更新做什么 1、资源 热更资源和热更步骤(Bundle) 2、代码 Lua与C#的交互(xLua) 3、框架开发流程第一阶段:Bundle处理 构建;加载;更新第二阶段:C#调用Lua Lua加载与管理 Lua绑…