Android JetPack学习笔记-DataStore

2023-11-16

        通过键值对存储,以异步、一致的事务方式存储数据克服了SharedPreferences的一些缺点,基于kotlin协程的Flow实现。并且可以对SP数据进行迁移。

        以protobuffer协议进行存储,速度更快,效率更高。

使用

        引用

    implementation "androidx.datastore:datastore-preferences:1.0.0-alpha05"
    implementation "androidx.datastore:datastore-preferences-core:1.0.0-alpha05"

        初始化

private lateinit var dataStore : DataStore<Preferences>

dataStore = context.createDataStore("huaStore")

        存数据

    private fun writeData() {
        runBlocking {
            //key为huahua  value类型为int
            val key = preferencesKey<Int>("huahua")
            dataStore.edit {
                val value = it[key] ?: 0
                it[key] = value + 1
            }
        }
    }

        取数据

    private fun readData() = runBlocking {
        //key为huahua  value类型为int
        val key = preferencesKey<Int>("huahua")
        var gaoxiao : Flow<Int> = dataStore.data.map {
            it[key] ?: 0
        }
        return@runBlocking gaoxiao.first()
    }

        清除数据

    private fun clearData() {
        runBlocking {
            dataStore.edit { //将该datastore中的数据全部清除
                it.clear()
            }
        }
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android JetPack学习笔记-DataStore 的相关文章

随机推荐

  • VUE的核心特性:响应式

  • 【Pytorch Lighting】第 6 章:深度生成模型

    大家好 我是Sonhhxg 柒 希望你看完之后 能对你有所帮助 不足请指正 共同学习交流 个人主页 Sonhhxg 柒的博客 CSDN博客 欢迎各位 点赞 收藏 留言 系列专栏 机器学习 ML 自然语言处理 NLP 深度学习 DL fore
  • openEuler和linux什么关系,华为openEuler和鸿蒙(HarmonyOS)不是同一个操作系统

    华为推出了新操作系统 定名为openEuler 当前已提供20 03版本下载 有人不解的问 它跟鸿蒙 HarmonyOS 是不是同一个操作系统 或者有什么关系 华为openEuler和鸿蒙 HarmonyOS 100 不是同一个操作系统 并
  • string类型数组java_Java string类和数组的相关函数总结

    一 string类 1 字符串查找 1 str indexOf substr 返回substr首次在str里出现的索引 str 任意字符串对象 substr 要搜索的字符串 2 str lastIndexOf substr 返回substr
  • 洛谷P1011 [NOIP1998 提高组] 车站题解

    斐波那契数列 题目描述 火车从始发站 称为第1站 开出 在始发站上车的人数为a 然后到达第2站 在第2站有人上 下车 但上 下车的人数相同 因此在第2站开出时 即在到达第3站之前 车上的人数保持为a人 从第3站起 包括第3站 上 下车的人数
  • 拒绝摆烂!C语言练习打卡第四天

    博客主页 小王又困了 系列专栏 每日一练 人之为学 不日近则日退 感谢大家点赞 收藏 评论 目录 一 选择题 1 第一题 2 第二题 3 第三题 二 编程题 1 第一题 2 第二题 前言 在前面我们学习完C语言的所以知识 当然练习巩固也不能
  • 万维网(www)

    万维网 www 是互联网中使用最广泛的一种应用 是一个超大规模线上信息储藏所 以链接的形式为用户提供信息检索服务 万维网的核心作用 使得信息在网上自由传输 万维网提供分布式的信息检索服务 箭头代表以链接的形式跳转到其他页面 这种方式使得一个
  • 【Maven】单元测试、统计、覆盖率相关插件使用介绍

    maven surefire plugin maven surefire plugin是maven执行单元测试的插件 不显性配置也可以直接使用 这个插件的surefire test命令会默认绑定maven执行的test阶段 执行结束后 默认
  • Mysql数据库的环境搭建【详细】

    作者简介 大学机械本科 野生程序猿 学过C语言 玩过前端 还鼓捣过嵌入式 设计也会一点点 不过如今痴迷于网络爬虫 因此现深耕Python 数据库 seienium JS逆向 安卓逆向等等 目前为全职爬虫工程师 学习的过程喜欢记录 目前已经写
  • ASM插桩:学完ASM Tree api,再也不用怕hook了

    背景 对于ASM插桩来说 可能很多人都不陌生了 但是大多数可能都停留在core api上 对于现在市面上的一些插桩库 其实很多都用tree api进行编写了 因为tree api的简单与明了的特性 也越来越成为许多开源库的选择 ASM有两套
  • 【STM32CubeMX】位置式PID调节控制输出电压(超详解)

    本文将借助STM32CubeMX来配置ADC DMA DAC USART 并利用PID位置式算法实现对输出电压进行AD采集通过PID算法调节DAC 获取到我们想要的电压值 讲解的主要知识 何为PID以及为何需要PID STM32CubeMX
  • 计算机含金量最高的证书

    第一种证书 计算机技术与软件专业资格考试证书 计算机技术与软件专业资格考试证书 是由国家人力资源和社会保障部 工业和信息化部领导的国家级考试 该考试分为 5 个专业类别 并分设了高 中 初级专业资格考试 共 28 个资格的考核 也是用人单位
  • Open3D(C++) 根据索引提取点云

    目录 一 功能概述 1 主要函数 2 源码 二 代码实现 三 结果展示 本文由CSDN点云侠原创 原文链接 爬虫网站自重 把自己当个人 一 功能概述 1 主要函数 std shared ptr
  • 添加CSS样式的三种方法与CSS的注释

    目录 三种使用 CSS 的方法 外部 CSS 实例 mystyle css 内部 CSS 实例 行内 CSS 实例 多个样式表 实例 实例 层叠顺序 CSS 注释 实例 实例 实例 HTML 和 CSS 注释 实例 当浏览器读到样式表时 它
  • R_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server;

    error Error R NOT SUPPORTED AUTH MODE Client does not support authentication protocol requested by server MySQL 8 has su
  • C++性能优化系列——矩阵转置(四)OpenMP并行计算

    本系列之前的篇章都是基于单线程处理 实际工程中 通过多线程对程序进行并行化往往是最简单且直接有效的优化手段 本篇以C 性能优化系列 矩阵转置 三 内存填充避免缓存抖动 中优化好的程序为Base版本 通过OpenMP技术 对程序进一步做并行化
  • 下面几款接口测试工具,工作中都有用的那些?

    下面几款接口测试工具 工作中都有用的那些 1 Fiddler Fiddler是一款功能强大的接口测试软件 它可以帮助用户抓取 修改和重放HTTP HTTPS请求 是一款可视化的网络调试利器 它可以支持HTTP协议和HTTPS协议 支持GET
  • 初识pnpm

    初识pnpm 介绍 pnpm和npm yarn一样 都是包管理器 但是pnpm节约磁盘空间并且安装很快 所有的报会存储在硬盘的同一个位置 多个项目使用了同一个包时 在pnpm中他们是公用的 只会存储一遍 下次需要用到这个包时就会从硬盘中查找
  • FISCO BCOS 八、快速入门truffle(通过Ganache部署)

    目录 快速入门 Truffle 创建项目工程 项目结构 使用测试 编译合约 通过 Ganache 部署合约 常见问题 问题1 Error Could not find artifacts for home wu MetaCoin test
  • Android JetPack学习笔记-DataStore

    通过键值对存储 以异步 一致的事务方式存储数据克服了SharedPreferences的一些缺点 基于kotlin协程的Flow实现 并且可以对SP数据进行迁移 以protobuffer协议进行存储 速度更快 效率更高 使用 引用 impl