Serializable Vs Parcelable
Let us see what is Serializable and why its differentiated from Parcelable?
The Work of Serializable is to convert an object state to Byte Stream. For passing an object or an array between an application component we use this Serializable or Parcelable.
Difference between Serializable Vs Parcelable?
1.Serializable is an empty interface which doesn't have any default implementation method.
2.Parcelable is faster when compared with Serializable, Since the developer has to take care of the object state.
3.Serializable takes lot of temporary object which leads to Garbage Collection.
4.Serializable is easier to implement when compared with Parcelable.
Let us see an example how to implement Serializable
Class which contain student Details that implements Serializable interface
import java.io.Serializable;
public class Student implements Serializable {
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
String name;
}
Passing object from one Activity to another Activity
val student = Student()
student.setName("Pandiyan")
val intent = Intent(this,SecondActivity:clss. java)
intent.putExtra("StudentData", student)
startActivity(intent)
Getting object in Another Activity
val studentData = intent.getSerializableExtra("studentData") as Student
Creating student class using Parcelable
import android.os.Parcelable;
public class Student implements Parcelable {
protected Student(Parcel in) {
name = in.readString();
}
public static final Creator<Student> CREATOR = new Creator<Student>() {
@Override
public Student createFromParcel(Parcel in) {
return new Student(in);
}
@Override
public Student[] newArray(int size) {
return new Student[size];
}
};
public void setName(String name) {
this.name = name;
}
String name;
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel parcel, int i) {
parcel.writeString(name);
}
}