datastore读取方式

Jetpack的DataStore数据存储组件的使用简介 Jetpack的DataStore数据存储组件的使用简介 介绍 Jetpack DataStore是一种数据存储解决方案,可让您使用Protocol Buffer(协议缓冲区)存储键值对或类型化对象。DataStore使用Kotlin协程和Flow异步,一致的事务方式来存储数据。 注意: 如果需要支持大型或复杂的数据集,部分更新或参考完整性,请考虑使用 Room 而不是DataStore。DataStore非常适合小型,简单的数据集,并且不支持部分更新或参照完整性。 目的 Jetpack DataSto 阅读详情

https://blog.youkuaiyun.com/github_35581409/article/details/142901840

看到在datastore上存储自定义的可序列化的对象

之前项目中用到过datastore的preference,当时官网的介绍是这样的

https://developer.android.com/topic/libraries/architecture/datastore?hl=zh-cn#prefs-vs-proto

初始化

// At the top level of your kotlin file:
val Context.dataStore: DataStore<Preferences> by preferencesDataStore(name = "settings")

写入

suspend fun incrementCounter() {
  context.dataStore.edit { settings ->
    val currentCounterValue = settings[EXAMPLE_COUNTER] ?: 0
    settings[EXAMPLE_COUNTER] = currentCounterValue + 1
  }
}

读取

val EXAMPLE_COUNTER = intPreferencesKey("example_counter")
val exampleCounterFlow: Flow<Int> = context.dataStore.data
  .map { preferences ->
    // No type safety.
    preferences[EXAMPLE_COUNTER] ?: 0
}

读取的时候,返回flow对象,虽然说可以随时监听啊,但是我只要当前的值,不需要监听怎么办呢

  private suspend fun read(key: String): String? {
        val dataStoreKey = preferencesKey<String>(key)
        val preferences = dataStore.data.first()
        return preferences[dataStoreKey]
    }

直接返回first()就好了

Preferences DataStore全解析 DataStore 是用来取代的一种简易数据存储的解决方案。下面我们来看看如何使用。 阅读详情

相关推荐

SQL实现数据仓库ETL:分层设计、增量抽取与性能优化实践

在数据仓库建设过程中,ETL(抽取、转换、加载)是数据流转的核心环节。传统观点常将ETL与专业工具或大数据框架绑定,但在中小规模数据场景下,基于SQL的ETL方案凭借低门槛、高可维护性和直观的排错体验,成为高效且务实的选择。本文从ETL的基础概念出发,阐述数据仓库分层(ODS、DWD、DWS、ADS)中每层ETL的定位与职责,重点剖析增量抽取策略(时间戳、主键、日志)下的SQL实现方式,以及数据清洗、去重和格式化的常见写法。同时,结合真实项目经验,分享慢SQL优化技巧、任务调度依赖设计、幂等性保障和常见问题

weixin_33290540的博客 346

JetPack下DataStore学习,Kotlin可能带来的一个深坑

最后这里放上我这段时间复习的资料,这个资料也是偶然一位朋友分享给我的,里面包含了腾讯、字节跳动、阿里、百度2020-2021面试真题解析,并且把每个技术点整理成了视频和PDF(知识脉络 + 诸多细节)。还有高级架构技术进阶脑图、高级进阶架构资料帮助大家学习提升进阶,这里我也免费分享给大家也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习。一起互勉~《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!知识脉络 + 诸多细节)。还有。

2401_84149381的博客 991

普中科技ESP8266-01s模块CWJAP:3 FAIL报错?手把手教你用AT+CWSAP指令搞定WiFi配置

本文详细解析了普中科技ESP8266-01s模块常见的CWJAP:3 FAIL报错问题,并提供了通过AT+CWSAP指令正确配置WiFi的实战解决方案。文章涵盖错误根源分析、硬件连接指南、AT指令详解及高级调试技巧,帮助开发者快速解决ESP8266-01s模块的WiFi配置难题。

weixin_42653691的博客 202

关于Jetpack DataStore(Preferences)的八点疑问

DataStore是Android上一种轻量级存储方案,依据官方教程很容易就写出简易的Demo。本篇主要是分析关于DataStore(Preferences)使用过程中的一些问题,通过问题寻找本质,反过来能更好地指导我们合理使用DataStore。

chuyouyinghe的专栏 958

量化交易新手入门:从零开始搭建你的第一个Python交易策略(附完整代码)

本文为量化交易新手提供从零开始搭建Python双均线策略的完整指南,涵盖环境配置、数据获取、策略实现及风险管理等关键步骤。通过详细的代码示例和实践建议,帮助读者快速掌握量化交易的核心技术,并避免常见陷阱。文章特别强调Python在量化交易中的技术革新优势,适合希望进入金融科技领域的初学者。

weixin_26905487的博客 444

Marin说PCB之LPDDR5的布线注意事项--03

这个规则中是把每个字节中的WCK to RDQS 以及DM / DQ to WCK等长规则都加到了DM / DQ这个等长规则中去了,因为芯片手册上的设计要求中的DM / DQ这个group的等长误差是+-50MIL, WCK to RDQS的等长group的规则是62.5MIL,DM / DQ to WCK等长group的规则是相对松一些是150MIL。其实上面的等长规则还是建少了一些的,例如手册上要求的每个channel的WCK0:1,WCK2:3等长误差在+-488MIL,这个规则建议还是补上去吧。

weixin_45223454的博客 1231

DataStore的基础用法

0. 简介 Google在推出JetPack组件以来,一直推荐我们使用DataStore组件替代到我们第一天学android就知道的SharedPreferences组件,原因很简单,因为当年的SharedPreferences存在居多的问题,DataStore就是为了解决这些问题而来的。 1. SP的缺点 至于 SP到底存在哪些问题,我们可以直接查看 DataStore源码上的注释: Synchronous API encourages StrictMode violations apply() an

成长的烧年 7863

SystemRDL:从寄存器描述到自动化生成的完整指南

本文详细介绍了SystemRDL如何通过“一份描述,多处生成”的理念,彻底解决芯片与FPGA设计中手动维护寄存器带来的不一致与低效问题。文章提供了从语言快速上手、核心组件讲解到使用PeakRDL工具链实现自动化代码与文档生成的完整实战指南,帮助硬件工程师构建高效、可靠的寄存器开发流程。

weixin_29243279的博客 664

一文带你玩转 DataStore

缘起 SharedPreferences 说起 SharedPreferences(下面简称 SP),只要是安卓开发都不会陌生的,平时开发都离不开,不过它确实很方便,以键值对的形式存储在本地,使用非常简单: val sp = getSharedPreferences("Test", Context.MODE_PRIVATE) sp.edit { putString("jetPack", "text") } val jetPack = sp.getString("jetpack", "") 只需要上面几行代

Zhujiang 5387

Figma到Axure一键转换:Axhub Extension保姆级教程(含常见问题解决)

本文提供Axhub Extension的保姆级教程,详细讲解如何将Figma设计稿一键转换为Axure高保真交互原型。教程涵盖环境准备、核心转换四步走流程,并重点解决JSON导入失败、样式错乱、复杂组件转换等常见问题,旨在打通Figma与Axure之间的数据孤岛,大幅提升设计师和产品经理的原型制作效率。

night的博客 1577

SAP UI5 主题设置全解析:从启动参数到运行时切换、跨域白名单与事件监听

SAP UI5主题体系深度解析:从配置到切换的完整指南 摘要:SAP UI5主题机制远不止CSS换肤,其工程化实践涵盖启动配置、运行时API切换、跨库路径映射及安全管控等关键环节。通过bootstrap标签或URL参数设置初始主题,运行时可用Theming.setTheme无刷新切换。自定义主题需配置theme-roots路径,跨域加载需声明sap-allowed-theme-origins白名单。主题切换完成后会触发applied事件,适合执行视觉同步操作。该体系支持多品牌适配、集中式主题管理,在Fior

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 328

PB powerbuilder中使用datastore替代游标

 先看一个实验,相同的效果,游标和datastore的处理效率对比,datastore有明显优势。 A:游标方式:   B:datastore方式   两段代码都是从表格 base_area中抓取area_name字段内容,相比之下,datastore方式的脚本更易于阅读。 另外,datastore还可以完成一些更复杂的逻辑,以及更自由的数据读取,所以PB开发中是可以使用da...

xiaox的专栏 1476

OpenStack 之 Epoxy版本 部署实战

OpenStack Epoxy 是 OpenStack 的第 31 个版本,其版本号为 2025.1,于 2025 年 4 月 2 日正式发布。

求知若渴,虚心若愚。 236

kotlin,jetpack compose,使用DataStore保存数据,让程序下次启动时自动获取

kotlin,jetpack compose,使用DataStore保存数据,让程序下次启动时自动获取

wangz76的博客 1043

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

jetpack之datastore

今天测试了一下google推荐使用的datastore package com.xxx.xxx.datastore; /** * Created by easyboot. * on Date: 2021/8/12 Time: 17:18 */ import android.content.Context; import androidx.annotation.NonNull; import androidx.datastore.preferences.core.MutablePrefer.

easyboot的专栏 387

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Google Datastore for Java 文档摘录(一)

The datastore is designed with web applications in mind, with an emphasis on read and query performance. 要知道,datastore是为Web应用程序而设计的,其重点关注的是读取和查询的性能。   All queries are pre-indexed for fast results o...

jinjiankang1980的专栏 192

让我们探索android中的jetpack数据存储

Ever since the release of Android Jetpack it has come up with several libraries which makes us writing better Android code, avoid boilerplate code, etc. and now this time it has brought us an another ...

weixin_26750511的博客 431

分享Android开发中常见的代码优化方案

SP主要缺点 * SP用内存层用HashMap保存,磁盘层则是用的XML文件保存。每次更改都需要将整个HashMap序列化为XML格式的报文然后整个写入文件。 * SP读写文件不是类型安全的,且没有发出错误信号的机制,缺少事务性API

嘴巴吃糖了 287

Dojo高级Web2.0 UI组件库---Tree组件

Tree组件可以把有层次关系的数据用树状结构展现出来,就如同 Windows 系统的资源浏览器。Tree有两个模板,一个是Tree模板,一个是TreeNode模板,应该说Tree模板就是一个容器,里面有很多TreeNode.而初始化树,打开树节需要的数据,是通过来提供的。提供了封装的标准的数据存取API,作为统一的数据访问层而存在。所有的数据都是item或者item的属性。提供了一个基本的Item...

weixin_30484739的博客 94

Jepack - DataStore

在 top-level 使用 preferencesDataStore() 提供的属性委托来获取 DataStore<Preferences> 实例,扩展属性给到 Context 因为创建实例会用到上下文,只提供 getValue() 因此属性是val。注意 preferencesDataStore() 不能保证对象单例,如果在同一进程中为给定文件创建多个。存储位置:/data/user/0/包名/files/datastore/文件后缀:preferences_pb。实例,在读取或更新数据时将抛出。

HugMua的博客 937

Jetpack架构组件库:DataStore

Jetpack DataStore 是一种经过改进的新数据存储解决方案,旨在取代 SharedPreferences。DataStore 基于 Kotlin 协程和 Flow 构建而成,提供以下两种不同的实现: Preferences DataStore 用于键值对存储。数据以异步、一致和事务性的方式存储,有助于避免 SharedPreferences 的一些缺点。此实现不需要预定义的架构,也不确保类型安全。 Proto DataStore 用于存储类型化对象,数据作为自定义数据类型的实例进行存储。此实现

川峰的博客 6万+

【Jectpack】DataStore

dataStore 是jectpack推出的轻量化存储组件,包含PreferenceDataStore和ProtoDataStore两种方式,基于Flow()实现数据存储 Why To Use 之前的Android轻量化存储组件SharedPreferences读写操作会阻塞主线程,在数据量不多的情况下没什么影响,但随着对组件的滥用,存储的数据量逐渐增大,性能问题逐渐显现,官方也挣扎着出了apply()异步化方案,希望挽救SharedPreferences于水火,但可惜apply()并未实现真正意义上的.

健忘的鱼的博客 2807

Android DataStore:安全存储和轻松管理数据

datastore , 关于作者:优快云内容合伙人、技术专家, 从零开始做日活千万级APP。专注于分享各领域原创系列文章 ,擅长java后端、移动开发、人工智能等,希望大家多多支持。

fumeidonga的博客 7759

DataStore存储数据+加上加密

定义data class,添加 @Serializable 标签= null,= null这里先展示没有加密的的序列化存储的时候,将实例值转换成json string,再转换成bytearray写出到输出流,就可以保存到datastore的文件上了读取的时候,从输入流中读取转成json string, 再通过json解析成 UserSetting实例//继承datastore的Serializer,类型是我们定义的UserSettings//将输入端的内容先转换成string。

github_35581409的博客 1269

JetPack之DataStore源码笔记

文章目录1. Preferences DataStore1.1. Preferences DataStore的创建1.2. Preferences DataStore的写入1.2.1. 迁移SharedPreference过程 上一篇文章分析了SharedPreferences的原理和弊端,这篇文章主要分析DataStore的源码。根据官方文档的介绍,DataStore主要有一下优势: 支持键值对和类型化对象的存储; 数据存储采用protocol buffers,更节省资源; 使用Kotlin协程以及Fl

weixin_40888127的博客 1659
上一篇: DataStore存储数据+加上加密
下一篇: 关于Android的存储
lynn8570_blog
博客等级 码龄10年 254粉丝 87原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值