当前位置: 首页 > news >正文

【Android 组件】 实现数据类的 Parcelable 序列化

Parcelable 是 Android 提供的一种高效的数据序列化机制,用于在不同组件(如 Activity、Service、Fragment)之间 通过 Intent 或 Bundle 传递复杂的数据对象。与 Java 的 Serializable 接口相比,Parcelable 提供了更好的性能,因此在 Android 开发中更推荐使用。

1、优点

  • 高性能:Parcelable 的序列化和反序列化过程比 Serializable 更快,因为它直接操作内存,而不是通过 Java 的反射机制。
  • 类型安全:Parcelable 要求明确指定数据的类型,这使得序列化和反序列化过程更加安全。
  • 与 Android 系统集成良好:Parcelable 是 Android 系统推荐的数据传输方式,适用于跨进程通信(IPC)。

2、添加依赖

  • 在模块的 build.gradle.kt 文件中增加 “kotlin-parcelize” 插件
plugins {alias(libs.plugins.android.application)alias(libs.plugins.kotlin.android)id("kotlin-parcelize")
}

3、定义数据类

  • 使用 @Parcelize 注解定义一个数据类,并实现 Parcelable 接口
  • @Parcelize 注解会自动生成 Parcelable 接口的实现代码。
  • Parcelable 支持的数据类型包括基本数据类型、String、Parcelable、List、Map<String, Parcelable> 等
  • 数据类中的所有属性都必须是可序列化的。
  • 使用 @Parcelize 注解可以大大简化 Parcelable 的实现,减少样板代码。
package com.android.component.parcelableimport android.os.Parcelable
import kotlinx.parcelize.Parcelize@Parcelize
data class UserModel(val userName: String,val age: Int,val isBoy: Boolean
): Parcelable

4、序列化和反序列化

(1)Acitivity 之间传递数据

  • FirstActivity 中,将 UserModel 数据对象进行序列化后,通过 Intent 传递给 SecondActivity 。
package com.android.component.parcelableimport android.content.Intent
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import com.android.component.databinding.ActivityFirstBindingclass FirstActivity: AppCompatActivity() {private lateinit var viewBinding: ActivityFirstBindingoverride fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)viewBinding = ActivityFirstBinding.inflate(layoutInflater)setContentView(viewBinding.root)viewBinding.start.setOnClickListener {val userModel = 
http://www.dtcms.com/a/607788.html

相关文章:

  • 传媒公司制作网站公司网站备案网址
  • 淮南网络建站公司关键词优化seo优化
  • 电商思维做招聘网站福州自助建站软件
  • 建设网站上海市孝感网站建设专家
  • 建设通官方网站下载e航做网站数据需求分析
  • 制作公司网站用阿里云苗木网站开发需求
  • 深圳高端网站制作公司品牌网站解决方案
  • 物流商 网站建设方案提供常州网站建设
  • 网站搭建三部曲是什么?怎么做辅助发卡网站
  • 重庆建设技术发展中心网站新钥匙建站
  • 优才网站建设广州竞价外包
  • 网站如何做实名验证wordpress 微信二维码登录
  • 个人网站炫酷主页html湖州网站建设公司
  • 佳木斯市郊区建设局网站有专门做网站的公司
  • 双城网站建设公司wordpress song
  • 怎么选择优秀的网站建设公司主机服务器网站 怎么做
  • 高端it网站建设如何修改网站联系人
  • 重庆专业网站搭建扫描网站特征dede
  • 林壑地板北京网站建设wordpress网站弹窗插件
  • 天猫网站做链接怎么做淘客推广是什么
  • OpenSCAD的BOSL库
  • C语言编译器Visual Studio | 介绍与使用技巧
  • 价格套餐网站网站备案好还是不备案好
  • 网站开发常用的语言和工具海外购物app排行榜前十名
  • 大模型应用的自动化评测
  • 广州定制网站制作平台张家港网站建设培训学校
  • 58同城成都网站建设名录一建工程类专业对照表
  • 上虞做网站公司php企业网站 源码
  • 各网站封面尺寸网站怎么seo关键词排名优化推广
  • 网站怎么做图片动态图片不显示不出来的wordpress theme forest