Android中Parcelable的使⽤详解
Parcelable与Serializable
Serializable是Java为我们提供的⼀个标准化的序列化接⼝。
Parcelable是Android为我们提供的序列化的接⼝。
对⽐:
1、Parcelable相对于Serializable的使⽤相对复杂⼀些。
2、Parcelable的效率相对Serializable也⾼很多。
3、Parcelable不能使⽤在要将数据存储在磁盘上的情况,因为Parcelable在外界有变化的情况下不能很好的保证数据的持续
性。尽管Serializable效率低点,但此时还是建议使⽤Serializable。存储到设备或者⽹络传输上选择Serializable。
序列化与反序列化
序列化:将对象转换为可以传输的⼆进制流(⼆进制序列)的过程,这样我们就可以通过序列化,转化为可以在⽹络传输或者保存
到本地的流(序列),从⽽进⾏传输数据。
反序列化:从⼆进制流(序列)转化为对象的过程。
简单使⽤:
进⾏Android开发的时候,⽆法将对象的引⽤传给Activities或者Fragments,我们需要将这些对象放到⼀个Intent或者Bundle⾥
⾯,然后再传递。简单看⼀下:
1、定义Book类,实现Parcelable接⼝。
t;
;
able;
publicclassBookimplementsParcelable{
privateStringname;
privateintid;
privateStringclassify;
protectedBook(Parcelin){
name=ring();
classify=ring();
id=t();
}
publicBook(Stringclassify,Stringname,intid){
=name;
=id;
fy=classify;
}
/**
*反序列化
*/
publicstaticfinalCreator
@Override
publicBookcreateFromParcel(Parcelin){
returnnewBook(in);
}
@Override
publicBook[]newArray(intsize){
returnnewBook[size];
}
};
@Override
publicintdescribeContents(){
return0;
}
/**
*序列化过程
*
*@paramdest
*@paramflags
*/
@Override
publicvoidwriteToParcel(Parceldest,intflags){
tring(name);
tring(classify);
nt(id);
}
@Override
publicStringtoString(){
return"name:"+
name+"""+"id:"+id+"""+"classify"+classify;
}
}
writeToParcel:序列化过程
Creator与protectedBook(Parcelin)配合实现反序列化,转换为对象。
注意:类中有多个String或者其它相同对象的话,那么writeToParcel中writeString的顺序是怎么样的,protectedBook(Parcel
in){}中readString的顺序就得是怎么样的。
2、mainActivity中:
lickListener(kListener(){
@Override
publicvoidonClick(Viewv){
Intentintent=newIntent(,);
ra("key",newBook("哈","鸿",8));
startActivity(intent);
}
});
3、另⼀个Activity获取:
Intentintent=getIntent();
Bookbook=celableExtra("key");
Log.d("Test1Activity",ng());
输出:
--------------------------------------------------------------------------------
Book类⾥⾯有其它对象:
如果Book类⾥⾯有其他对象(⽐如实体类Data)的话,那么Data也需要实现Parcelable接⼝,⽤法与上⾯的Book类⼀样。
writeToParcel⾥⾯需要写上:arcelable(data,0);
protectedBook(Parcelin){}⾥⾯需要写上data=rcelable(ssLoader());
总结
以上所述是⼩编给⼤家介绍的Android中Parcelable的使⽤详解,希望对⼤家有所帮助,如果⼤家有任何疑问请给我留⾔,⼩编
会及时回复⼤家的。在此也⾮常感谢⼤家对⽹站的⽀持!
如果你觉得本⽂对你有帮助,欢迎转载,烦请注明出处,谢谢!
本文发布于:2023-01-04 14:54:40,感谢您对本站的认可!
本文链接:http://www.wtabcd.cn/fanwen/fan/90/91240.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |