一、Serializable的序列化
package com.example.lfk.activitytest.entity;
import java.io.Serializable;
/*
* Created by 98620 on 2017/10/27.
*/
public class Person implements Serializable {
private String name;
private int age;
public Person() {
}
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;
}
/* 使用Intent - Serializable的方式进行对象传递
主要是对应的class需要实现 serializable的接口
发送端的的写法
Person person = new Person();
person.setName("Tom");
person.setAge(20);
Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
intent.putExtra("person_data", person);
startActivity(intent);
接收端的写法
Person person = (Person) getIntent().getSerializableExtra("person_data");
*/
void test() {
}
}
二、Parcelabale
package com.example.lfk.activitytest.entity;
import android.os.Parcel;
import android.os.Parcelable;
/*
* Created by 98620 on 2017/10/27.
*/
public class Person2Parcelable implements Parcelable {
private String name;
private int age;
public Person2Parcelable() {
}
protected Person2Parcelable(Parcel in) {
name = in.readString();
age = in.readInt();
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(name);
dest.writeInt(age);
}
@Override
public int describeContents() {
return 0;
}
public static final Creator<Person2Parcelable> CREATOR = new Creator<Person2Parcelable>() {
@Override
public Person2Parcelable createFromParcel(Parcel in) {
Person2Parcelable person = new Person2Parcelable();
person.name = in.readString();
person.age = in.readInt();
return person;
}
@Override
public Person2Parcelable[] newArray(int size) {
return new Person2Parcelable[size];
}
};
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;
}
/* 使用Intent - Parcelable的方式进行对象传递
主要是对应的class需要实现 Parcelable的接口 和重写对应的方法
发送端的的写法
Person person = new Person();
person.setName("Tom");
person.setAge(20);
Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
intent.putExtra("person_data", person);
startActivity(intent);
接收端的写法
Person person = (Person) getIntent().getParcelableExtra("person_data");
优点, Parcelable 只会把对象指定的属性进行传递, 效率更高
而Serializable会把怎整个对象都进行序列化,效率较低
*/
void test() {
}
}