【鴻蒙學習筆記】通過用戶首選項實現數據持久化

官方文檔:通過用戶首選項實現數據持久化

目錄標題

  • 使用場景
  • 第1步:源碼
  • 第2步:啟動模擬器
  • 第3步:啟動entry
  • 第6步:操作
  • 樣例2

使用場景

  1. Preferences會將該數據緩存在內存中,當用戶讀取的時候,能夠快速從內存中獲取數據,當需要持久化時可以使用flush接口將內存中的數據寫入持久化文件中。
  2. Preferences會隨著存放的數據量越多而導致應用占用的內存越大,因此,Preferences不適合存放過多的數據,也不支持通過配置加密,適用的場景一般為應用保存用戶的個性化設置(字體大小,是否開啟夜間模式)等。

第1步:源碼

import { common } from '@kit.AbilityKit';
import dataPreferences from '@ohos.data.preferences';@Entry
@Component
struct Index {@State changeFontSize: number = 16;// 上下文private context: common.UIAbilityContext = getContext(this) as common.UIAbilityContext//1. 獲取preferenceprivate preferencesInstance: dataPreferences.Preferences = dataPreferences.getPreferencesSync(this.context, { name: 'myStore' });aboutToAppear(): void {//4. 頁面打開后,直接從preference中獲取上一次的數據let result = this.preferencesInstance.getSync("fontSizeKey", 16)this.changeFontSize = Number(result)}build() {Column() {Row({ space: 10 }) {Text('當前進度一覽').fontSize(this.changeFontSize)}.margin(20)Slider({value: this.changeFontSize,min: 14,max: 22,step: 2,style: SliderStyle.InSet}).showSteps(true).width('75%').onChange(async (value: number) => {this.changeFontSize = value//2. 保存數據this.preferencesInstance.putSync('fontSizeKey', this.changeFontSize);//3. 持久化數據this.preferencesInstance.flush()})}.backgroundColor('#f2f3f5').width('100%').height('100%')}
}

第2步:啟動模擬器

在這里插入圖片描述

第3步:啟動entry

在這里插入圖片描述

在這里插入圖片描述

第6步:操作

在這里插入圖片描述

樣例2

import dataPreferences from '@ohos.data.preferences';
import { common } from '@kit.AbilityKit';@Entry
@Component
struct Index_preferences2 {@State message: string = 'Hello World';private context:common.UIAbilityContext = getContext(this) as common.UIAbilityContextprivate preferencesInstance: dataPreferences.Preferences =  dataPreferences.getPreferencesSync(this.context, { name: 'myStore' });aboutToAppear(): void {let result = this.preferencesInstance.getSync("messageKey","默認值1")this.message = String(result)}build() {Row() {Column() {TextInput({text:this.message}).fontSize(20).fontWeight(FontWeight.Bold).onChange((value)=>{this.message = value})Button("保存").onClick(()=>{this.preferencesInstance.putSync('message', this.message);this.preferencesInstance.flush()AlertDialog.show({message:"保存成功"})})Button("讀取").onClick(() => {let result = this.preferencesInstance.getSync("messageKey","默認值2")this.message = String(result)//獲取到的數據不是String,需要轉換一下AlertDialog.show({message:this.message})console.log("test",result)})}.width('100%')}.height('100%')}
}

在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/44902.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/44902.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/44902.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

springboot對象參數賦值變化

java springboot 項目, 通過接口修改Person類 name值, 在別的類中,注入Person類 Resource Person person, 為什么拿不到 接口修改的 name的值,是Person類 不同的對象造成的 嗎 參數對象和注入對象區別 Person類&…

云WAF | 云waf基礎知識詳解

隨著數字時代的到來,網絡安全問題越來越突出, Web應用防火墻(WAF)是保障 Web應用安全的一道重要防線。在云計算環境下,云環路由云平臺(WAF)的出現,其融合了 WAF的能力和云計算的靈活…

【Linux】IP地址與主機名

文章目錄 1.IP地址2.特殊IP地址3.主機名4.域名解析 1.IP地址 每一臺聯網的電腦都會有一個地址,用于和其它計算機進行通訊 IP地址主要有2個版本,V4版本和V6版本 IPv4版本的地址格式是:a.b.c.d,其中abcd表示0~255的數字,如192.168.…

PS 2024【最新】中文白嫖版!,安裝教程,圖文步驟

文章目錄 軟件介紹軟件下載安裝步驟 軟件介紹 Photoshop,簡稱“PS” Adobe Photoshop,簡稱“PS”,是由Adobe Systems開發和發行的圖像處理軟件。Photoshop主要處理以像素所構成的數字圖像。使用其眾多的編修與繪圖工具,可以有效地…

利用AI快速上手新項目:開發者的高效指南

使用AI幫助開發者熟悉新的項目 在現代軟件開發中,開發者經常需要快速熟悉一個新的項目。項目可能包含復雜的結構和大量的文件,這對新手開發者來說無疑是一項挑戰。幸運的是,借助AI技術,我們可以更加高效地了解項目結構&#xff0…

道路運輸企業管理人員安全考核試題(附答案)

1、【多選題】《道路旅客運輸企業安全管理規范》規定,客運企業應當制定車輛動態監控操作規程。操作規程的內容包括( )。(ABCD) A、衛星定位裝置、視頻監控裝置、動態監控平臺設備的檢修和維護要求 B、動態監控信息采集、分析、處理規范和流程 C、違法違規信息統…

探索Facebook在人工智能領域的最新進展

在當今快速發展的科技領域中,人工智能(AI)作為一項關鍵技術,正在逐步改變著社交媒體的面貌。作為全球最大的社交平臺之一,Facebook積極探索和應用人工智能,以提升用戶體驗、增強平臺安全性并推動技術創新。…

Nodejs 第八十四章(ElasticSearch搜索)

ElasticSearch基本用法在之前的篇章介紹過了 這里不在過多闡述 模擬假數據 安裝庫 faker-js/faker 模擬假數據的一個庫非常好用支持中文使用中文 locale: [zh_CN], 設置即可生成名字,郵箱,手機號,id,年齡,性別生成完成…

ATT 和 GATT:數據表示和交換

背景介紹 BLE的通信和以太網,wifi有個重大的不同是:BLE通信的設備往往有特定的功能。且這個功能不會在運行中發生變化。 因此藍牙設備通信的時候,只能訪問預先定義好的(也就是配置文件profile)的功能。 那profile里寫…

批量制作word表格

問題背景 將excel表中的成績內容制作為成績單,每頁對應一個學員的成績,方便打印 代碼實現 ## 導入包 import pandas as pd from docx import Document from docx.enum.text import WD_ALIGN_PARAGRAPH,WD_LINE_SPACING# 讀取 Excel 內容 df pd.read_e…

APP接入聚合廣告SDK會影響上架應用市場嗎?

SDK是移動互聯網的基本技術接入方式,而廣告聚合SDK僅是實現廣告請求返回的功能,所以本身不會有任何問題,而各家應用市場會對具體的廣告展現方式等會有不同的要求,開發者可以根據具體的市場需要要求廣告平臺來配合進行相關設置即可…

精通 mysqldumpslow:深度分析 MySQL 慢查詢日志

引言 在數據庫管理與優化的領域中,慢查詢日志是識別性能瓶頸的金礦。mysqldumpslow 工具是挖掘這座金礦的利器,它幫助我們分析 MySQL 慢查詢日志并提取關鍵信息。本文將詳細介紹 mysqldumpslow 的核心選項,并通過實例展示如何使用這些選項來…

IP 地址:優化網絡游戲

IP地址和網絡游戲 在現代網絡游戲中,IP地址不僅用于服務器分配,還能針對性進行玩家匹配與優化網絡延遲。本文將探討IP地址在網絡游戲中的具體應用。 *服務器分配* 全球服務器分布: 網絡游戲需要在全球范圍內提供快速、穩定的連接&#xff…

筆記

https://qoj.ac/problem/8008 不難發現, 隨機到某些位置,之后最短路 先O(nm)預處理出能到的點, 考慮最小的隨機位置 首先,我們將求和式進行展開: ∑ j 1 ∞ j ( n ? i n ) j ? 1 i n \s…

libcoap3對接華為云平臺

文章目錄 前言一、平臺注冊二、引入源碼庫1.libcoap倉庫編譯2.分析網絡報文3.案例代碼4.編譯&運行 總結 前言 通過libcoap3開源代碼庫對接華為云平臺,本文章將討論加密與不加密的方式對接華為云平臺。 一、平臺注冊 首先,你需要在華為云平臺上創建…

文華財經盤立方博易大師boll布林帶指標公式源碼

TT:TIME>850&&TIME<1150; MID:MA(CLOSE,26);//求N個周期的收盤價均線&#xff0c;稱為布林通道中軌 TMP2:STD(CLOSE,26);//求M個周期內的收盤價的標準差 TOP:MID2*TMP2;//布林通道上軌 BOTTOM:MID-2*TMP2;//布林通道下軌 A:EVERY(ISDOWN,2)&&TT&&…

【鴻蒙學習筆記】使用axios進行HTTP數據請求

官方文檔&#xff1a;網絡管理開發概述 目錄標題 訪問淘寶公開接口&#xff08;測試數據&#xff09;第1步&#xff1a;module.json5 配置網絡授權第2步&#xff1a;下載axios第3步&#xff1a;源碼第4步&#xff1a;啟動模擬器第5步&#xff1a;啟動entry第6步&#xff1a;操…

python中from import的用法詳解

在Python中&#xff0c;from ... import ... 語句用于從指定的模塊、包或對象中導入特定的類、函數、變量等。這種導入方式可以讓你在代碼中使用這些元素時不需要每次都指定它們所屬的模塊名&#xff0c;從而簡化代碼&#xff0c;提高可讀性。下面詳細解釋這個語法的用法。 基…

Linux 常用命令 - mkdir【創建新目錄】

簡介 mkdir 源自于 make directory 的縮寫&#xff0c;該命令在 Linux 中用于創建一個或多個新目錄。默認情況下&#xff0c;它創建的是空目錄&#xff0c;如果待創建的目錄已存在&#xff0c;則會提示已存在而不能繼續創建&#xff0c;不會覆蓋已有文件。如果目錄不存在&…

論文AI痕跡過重怎么辦?AI降痕工具來幫忙

如何有效利用AI工具提高工作效率&#xff1f;探索這5款頂級AI寫作工具 不知道大家有沒有發現&#xff0c;隨著人工智能技術的快速發展&#xff0c;AI工具正逐漸滲透到我們日常生活的各個方面&#xff0c;極大地提高了我們的工作和學習效率。無論是AI寫作、AI繪畫、AI思維導圖&…