标签:public test 类加载器 传递 因此 线程 shu 上下 效率
Parcelable接口相对Serializable接口比较复杂,但是有一套模板代码可以参考,所有的实现Parcelable接口的类都跟模板代码类似。
1 package com.example.murphy.helloworld; 2 3 import android.app.Person; 4 import android.os.Parcel; 5 import android.os.Parcelable; 6 7 public class UserP implements Parcelable { 8 private String account; 9 private String password; 10 11 //创建私有构造器,供CREATOR使用,从Parce回复数据 12 private UserP(Parcel in) { 13 account = in.readString(); 14 password = in.readString(); 15 } 16 17 //用来恢复自定义对象 18 public static final Creator<UserP> CREATOR=new Creator<UserP>() { 19 @Override 20 public UserP createFromParcel(Parcel source) { 21 return new UserP(source); 22 } 23 24 @Override 25 public UserP[] newArray(int size) { 26 return new UserP[size]; 27 } 28 }; 29 30 31 @Override 32 public int describeContents() { 33 return 0; 34 } 35 36 /*将数据写到Parce中*/ 37 @Override 38 public void writeToParcel(Parcel dest, int flags) { 39 dest.writeString(password); 40 dest.writeString(account); 41 } 42 }
序列化之后可使用Bundle的putParcelable的方法,将实现Parcelable接口的对象放进bundle打包进Intent然后传送。
Serializable是Java中的序列化接口,其使用起来简单但是开销很大,序列化和反序列化过程需要大量I\O操作。而Parcelable是Android中序列化方式,因此更适合用在Android平台上,它的缺点是使用起来稍微复杂一点,但是因为有一套模板,所以这点复杂还是可以接受的,而且它的效率很高,这也是Android推荐的序列化方式,因此在Android平台上首选Parcelable。
标签:public test 类加载器 传递 因此 线程 shu 上下 效率
原文地址:https://www.cnblogs.com/woyaodangxueba/p/10480595.html