- 实现Parcelable接口
🔥 Serializable 和 Parcelable 区别
===============================
-
Serializable 是Java本身就支持的接口。
-
Parcelable 是Android特有的接口,效率比实现Serializable接口高效(可用于Intent数据传递,也可以用于进程间通信(IPC))。
-
Serializable的实现,只需要implements Serializable即可。这只是给对象打了一个标记,系统会自动将其序列化。
-
Parcelabel的实现,不仅需要implements Parcelabel,还需要在类中添加一个静态成员变量CREATOR,这个变量需要实现 Parcelable.Creator接口。
-
Serializable 使用I/O读写存储在硬盘上,而Parcelable是直接在内存中读写。
-
Serializable会使用反射,序列化和反序列化过程需要大量I/O操作,Parcelable 自己实现封送和解封( marshalled &unmarshalled)操作不需要用反射,数据也存放在Native内存中,效率要快很多
💥 实现Serializable
import java.io.Serializable;
public class UserSerializable implements Serializable {
public String name;
public int age;
}
然后你会发现没有serialVersionUID。
Android Studio 是默认关闭 serialVersionUID 生成提示的,我们需要打开Setting,执行如下操作:
再次回到UserSerializable类,有个提示,就可以添加serialVersionUID了。
效果如下:
public class UserSerializable implements Serial