android ——MMKV保存bean实体对象、保存数组bean

2024-05-10 19:04

本文主要是介绍android ——MMKV保存bean实体对象、保存数组bean,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

MMKV简介

MMKV是一款基于 mmap 内存映射的 key-value 存储库,专门为移动端开发设计。相比于传统的SharedPreferences和SQLite等存储方式,MMKV具有更快的读写速度和更小的存储空间占用。同时,MMKV还提供了多线程安全的支持和可配置的加密选项。因此,在移动端开发中,MMKV被广泛应用于数据持久化和缓存优化等方面。

添加依赖

implementation 'com.tencent:mmkv:1.2.9'

一、MMKV保存bean实体对象

1.在Kotlin类中定义一个MMKV实例:

import com.tencent.mmkv.MMKV
val mmkv = MMKV.defaultMMKV()

2.你可以通过以下方式将Bean对象保存到MMKV中:

val bean = MyBean("John", 25)mmkv.encode("myBean", bean)

 3.要从MMKV中读取Bean对象,可以使用以下代码:

val bean = mmkv.decodeParcelable("myBean", MyBean::class.java)

 注意,使用MMKV保存和读取Bean对象时,需要确保该对象实现了Parcelable接口,并且注册了MMKV的支持。你可以通过以下方式实现:

import android.os.Parcelable
import kotlinx.android.parcel.Parcelize@Parcelize
data class MyBean(val name: String, val age: Int) : Parcelable {companion object {@JvmFieldval CREATOR = Parcelable.Creator<MyBean> { parcel ->MyBean(parcel.readString()!!, parcel.readInt())}}
}

二、MMKV保存数组bean

MMKV保存数组bean的示例代码为:

import com.tencent.mmkv.MMKVdata class MyBean(val name: String, val age: Int)fun main() {val mmkv = MMKV.defaultMMKV()// 保存数组beanval myBeans = listOf(MyBean("张三", 20), MyBean("李四", 25))val jsonString = Gson().toJson(myBeans)mmkv.encode("myBeans", jsonString)// 读取数组beanval savedJsonString = mmkv.decodeString("myBeans")val savedMyBeans = Gson().fromJson(savedJsonString, Array<MyBean>::class.java).toList()println(savedMyBeans)
}

这篇关于android ——MMKV保存bean实体对象、保存数组bean的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/977288

相关文章

Android Mainline基础简介

《AndroidMainline基础简介》AndroidMainline是通过模块化更新Android核心组件的框架,可能提高安全性,本文给大家介绍AndroidMainline基础简介,感兴趣的朋... 目录关键要点什么是 android Mainline?Android Mainline 的工作原理关键

Python中判断对象是否为空的方法

《Python中判断对象是否为空的方法》在Python开发中,判断对象是否为“空”是高频操作,但看似简单的需求却暗藏玄机,从None到空容器,从零值到自定义对象的“假值”状态,不同场景下的“空”需要精... 目录一、python中的“空”值体系二、精准判定方法对比三、常见误区解析四、进阶处理技巧五、性能优化

如何解决idea的Module:‘:app‘platform‘android-32‘not found.问题

《如何解决idea的Module:‘:app‘platform‘android-32‘notfound.问题》:本文主要介绍如何解决idea的Module:‘:app‘platform‘andr... 目录idea的Module:‘:app‘pwww.chinasem.cnlatform‘android-32

C++中初始化二维数组的几种常见方法

《C++中初始化二维数组的几种常见方法》本文详细介绍了在C++中初始化二维数组的不同方式,包括静态初始化、循环、全部为零、部分初始化、std::array和std::vector,以及std::vec... 目录1. 静态初始化2. 使用循环初始化3. 全部初始化为零4. 部分初始化5. 使用 std::a

shell编程之函数与数组的使用详解

《shell编程之函数与数组的使用详解》:本文主要介绍shell编程之函数与数组的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录shell函数函数的用法俩个数求和系统资源监控并报警函数函数变量的作用范围函数的参数递归函数shell数组获取数组的长度读取某下的

Android实现打开本地pdf文件的两种方式

《Android实现打开本地pdf文件的两种方式》在现代应用中,PDF格式因其跨平台、稳定性好、展示内容一致等特点,在Android平台上,如何高效地打开本地PDF文件,不仅关系到用户体验,也直接影响... 目录一、项目概述二、相关知识2.1 PDF文件基本概述2.2 android 文件访问与存储权限2.

Android Studio 配置国内镜像源的实现步骤

《AndroidStudio配置国内镜像源的实现步骤》本文主要介绍了AndroidStudio配置国内镜像源的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,... 目录一、修改 hosts,解决 SDK 下载失败的问题二、修改 gradle 地址,解决 gradle

在Android平台上实现消息推送功能

《在Android平台上实现消息推送功能》随着移动互联网应用的飞速发展,消息推送已成为移动应用中不可或缺的功能,在Android平台上,实现消息推送涉及到服务端的消息发送、客户端的消息接收、通知渠道(... 目录一、项目概述二、相关知识介绍2.1 消息推送的基本原理2.2 Firebase Cloud Me

Android中Dialog的使用详解

《Android中Dialog的使用详解》Dialog(对话框)是Android中常用的UI组件,用于临时显示重要信息或获取用户输入,本文给大家介绍Android中Dialog的使用,感兴趣的朋友一起... 目录android中Dialog的使用详解1. 基本Dialog类型1.1 AlertDialog(

在java中如何将inputStream对象转换为File对象(不生成本地文件)

《在java中如何将inputStream对象转换为File对象(不生成本地文件)》:本文主要介绍在java中如何将inputStream对象转换为File对象(不生成本地文件),具有很好的参考价... 目录需求说明问题解决总结需求说明在后端中通过POI生成Excel文件流,将输出流(outputStre