Android 通过通过Intent使用使用Bundle传递对象详细介绍传递对象详细介绍
Android 通过通过Intent使用使用Bundle传递对象传递对象
Android开发中有时需要在应用中或进程间传递对象,下面详细介绍Intent使用Bundle传递对象的方法。
被传递的对象需要先实现序列化,而序列化对象有两种方式:java.io.Serializable和android.os.Parcelable
Java中使用的是Serializable,而谷歌在Android使用了自定义的Parcelable。
两种序列化方式的区别:两种序列化方式的区别:
1.在使用内存的时候,Parcelable比Serializable性能高,推荐使用Parcelable类;
2.Serializable在序列化的时候会产生大量的临时变量,从而引起频繁的GC;
3.Parcelable不能使用在要将数据存储在磁盘上的情况,因为Parcelable不能很好的保证数据的持续性在外界有变化的情况
下,
这种情况建议使用Serializable。
第一步:定义序列化实体类;第一步:定义序列化实体类;
Serializable方式:
/**
* PersonSer
*
* @author http://blog.csdn.net/zuolongsnail
*/
public class PersonSer implements Serializable {
/**
* serialVersionUID的作用是在修改实体类后,可以正常的序列化和反序列化,在此不多说,大家可以谷歌百度下。
*/
private static final long serialVersionUID = -7620435178023928252L;
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
Parcelable方式:方式:
/**
* PersonPar
*
* @author http://blog.csdn.net/zuolongsnail
*/
public class PersonPar implements Parcelable {
private String name;
private int age;
public String getName() {