`

Parcelable对象序列化

 
阅读更多

 

 Parcelable,数据需要序列化推荐使用

     1  这个接口供实体序列化使用,

     2  在Intent中  传递数据和进程间通信都  可以使用此序列化

     3  数据不能序列化到本地,速度比原生的Serializable快

 

Intent之间数据传递例子:

1 实体例子 (必须实现序列化和反序列化方法,并且两个方法中属性顺序要一样)

   

/**
 * Parcelable 
 * 1 这个接口供实体序列化使用,
 * 2 在Intent中  传递数据和进程间通信都  可以使用此序列化
 * 3 数据不能序列化到本地,速度比原生的Serializable快
 * 
 * @author root
 *
 */
public class Person implements Parcelable {

	private Integer id;
	private String name;
	
	@Override
	public int describeContents() {
		 
		return 0;
	}
	
	/**
	 * 注意:
	 * 1   实现Parcelable.Creator接口,否则在获取Person数据的时候,会报错
	 * 2 实现Parcelable.Creator接口对象名必须为CREATOR,不如同样会报错 
	 * 3 在读取Parcel容器里的数据,必须按writeToParcel中顺序读取, 不然会出现获取数据出错
	 * 4 名称:反序列化对象 
	 */
    public static final Parcelable.Creator<Person> CREATOR = new Parcelable.Creator<Person>() {
    	
    	//从序列化的对象中 ,将数据还原,读取顺序与 “writeToParcel”写入顺序一致 
        public Person createFromParcel(Parcel source) {
            Person p1 = new Person();
            p1.setId(source.readInt());
            p1.setName(source.readString());
            return p1 ;
        }

        public Person[] newArray(int size) {
            return new Person[size];
        }
    };
    
	/**
	 * 将对象打包(序列化)到提供的Parcel中
	 * 顺序要与CREATER中一样
	 * 名称:序列化对象
	 */
	@Override
	public void writeToParcel(Parcel dest, int flags) {
		dest.writeInt( id );
		dest.writeString(name );
	}

	
	
	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
}

 2 Intent之间传递 

  

 第一个Activity中
       Person p = new Person();
        p.setId(1);
        p.setName("xiaoming");
        //传递序列化后的对象 
        intent.putExtra("Person", p);

第二个Activity中取出数据
    Person person  = intent.getParcelableExtra("Person");
    System.out.println( person.getId()+"  = "+person.getName());


分享到:
评论

相关推荐

    Android 之 Parcelable 序列化

    - 尽量避免在Parcelable对象中包含大量数据,因为这会增加内存消耗和序列化时间。 - 如果对象只需要在同一个进程中使用,考虑使用`Serializable`,因为它更简单,且在小数据量时性能差异不大。 `parcelable`文件...

    android-parcelable-intellij-plugin自动Parcelable方式序列化.rar

    Android开发中的Parcelable接口是用于对象序列化的一种高效方式,它比Java自带的Serializable接口性能更好,但编写起来较为繁琐。`android-parcelable-intellij-plugin`是一个IntelliJ IDEA的插件,它可以帮助开发者...

    Android Parcelable序列化自定义类集合在Activity间传递

    `Parcelable`是Android提供的一种高效的数据序列化方式,相比`Serializable`,它的序列化和反序列化速度更快,但实现过程相对复杂。 标题"Android Parcelable序列化自定义类集合在Activity间传递"所涉及的知识点...

    Android序列化——Serializable与Parcelable

    本文将深入探讨两种主要的序列化方式:Serializable和Parcelable,并比较它们的优缺点以及适用场景。 首先,我们来了解什么是序列化。序列化是将对象的状态转换为可存储或可传输的形式的过程。在Android中,这个...

    安卓自带Parcelable序列化

    `Parcelable`是Android中用于对象序列化的接口,它允许对象转换为字节数组,便于存储或在进程间传递。这个接口比`Serializable`更高效,但实现起来相对复杂一些。通常,当一个自定义类需要频繁在Intent、Bundle或者...

    Android多进程通讯AIDL传递Parcelable对象

    在Android中,Parcelable是数据序列化的高级接口,它比Serializable效率更高。如果要在AIDL中传递自定义对象,这些对象必须实现Parcelable接口。实现Parcelable接口通常包括以下步骤: 1. 创建一个内部静态类`...

    android 对象序列化

    在Android开发中,对象序列化是一种重要的技术,它允许我们将对象的状态转化为可存储或可传输的数据格式,便于在不同进程间传递或者持久化保存。在标题"android 对象序列化"中,我们要讨论的是如何在Android环境中...

    Android中Serializable和Parcelable序列化对象详解

    例如,创建一个Parcelable对象,然后在Intent中传递,或者将其保存到文件,然后在稍后的时间恢复。 总之,理解并熟练掌握Android中的序列化,特别是Parcelable,对于优化应用性能和提高用户体验至关重要。虽然...

    android序列化(Parcelable)

    `Parcelable`是Android系统提供的一个接口,用于对象的序列化和反序列化,其性能优于`Serializable`。因为`Parcelable`涉及到更多的手动编码,所以在效率上具有优势,但同时也增加了代码的复杂性。 **二、...

    Android对象序列化的代码例子

    Android提供了两种主要的对象序列化方式:Parcelable和Serializable。下面我们将详细探讨这两种方法以及它们的使用场景和注意事项。 首先,我们来看Parcelable接口。Parcelable是Android系统提供的一个高效的对象...

    Android通过Parcelable和Serializable实现各种类型嵌套序列化

    在Android开发中,数据持久化和跨组件通信是常见的需求,而序列化是实现这些...在处理嵌套对象时,两者都能很好地支持,但Parcelable需要手动处理嵌套对象的序列化和反序列化过程。选择哪种方式取决于具体场景和需求。

    很详细的android序列化过程Parcelable

    总之,Android的Parcelable机制通过实现序列化和反序列化方法,使得对象能够在内存、文件、网络等场景下进行有效的数据交换。这种机制虽然比Serializable复杂,但其性能优势在大量数据操作时尤为明显,尤其是在跨...

    Kotlin语法学习-变量定义、函数扩展、Parcelable序列化等简单总结

    这样,我们就可以将UserBean对象序列化到Parcel中,然后在需要的地方反序列化出来。 四、 Companion关键字解读 Companion关键字是Kotlin中的一种语法,用于定义伴生对象。在Kotlin中,Class没有静态方法,大多数...

    诠释Android中序列化的原理与机制

    接下来,我们讨论Parcelable,这是Android特有的序列化机制,主要用于内存中的对象传输,例如在Activity之间传递数据或者保存到Bundle中。相比于Serializable,Parcelable提供了更高的性能和更低的内存消耗。实现...

    Android中的Parcelable序列化对象

    `Parcelable`接口是Android系统提供的一种高效的对象序列化机制,相比于Java中的`Serializable`接口,它在性能上更优,但使用起来较为复杂。下面将详细解释`Parcelable`接口的工作原理、实现步骤以及其在Android开发...

    android序列化实现

    4. **Serializable**: 对象序列化后作为Intent或Bundle的一部分传递,适用于数据结构复杂但性能要求不高的情况。 5. **静态成员变量或Application**: 适用于全局共享的数据,但需谨慎处理,避免内存泄漏。 6. **文件...

    parcelable android demo

    在Android开发中,Parcelable接口是用于对象序列化的一种高效机制,相比Java的Serializable接口,它在数据传输和存储时性能更高。"parcelable android demo"是一个实战项目,旨在帮助开发者理解并掌握Parcelable的...

    ParcelableDemo.rar

    在Android开发中,数据序列化是一个非常重要的概念,它允许对象的状态被保存和恢复,以便在不同的时间点或不同的进程间传递。`Parcelable`是Android系统提供的一种高效的数据序列化方式,比Java自带的`Serializable`...

    Inetent传递对象parcelable

    这时,我们可以利用Parcelable接口来实现对象的序列化和反序列化,以便通过Intent进行传递。本文将详细介绍如何使用Parcelable接口来实现对象在Intent中的传递。 首先,了解Parcelable接口。它是Android提供的一种...

Global site tag (gtag.js) - Google Analytics