Serializable
Serializable एक मार्कर इंटरफेस है या हम इसे खाली इंटरफेस कह सकते हैं। इसमें कोई प्री-इम्प्लीमेंटेड मेथड नहीं होते। Serializable ऑब्जेक्ट को बाइट स्ट्रीम में कन्वर्ट करता है। इसलिए उपयोगकर्ता एक एक्टिविटी से दूसरी एक्टिविटी में डेटा पास कर सकता है। Serializable का मुख्य लाभ यह है कि निर्माण और डेटा पास करना बहुत आसान है लेकिन यह Parcelable की तुलना में धीमी प्रक्रिया है।
Serializable का सरल उदाहरण
import java.io.Serializable;
class SerializableObject implements Serializable {
String name;
public SerializableObject(String name) {
this.name = name;
}
public String getName() {
return name;
}
}
Parcelable
Parcelable, Serializable से तेज है। Parcelable ऑब्जेक्ट को बाइट स्ट्रीम में कन्वर्ट करता है और दो एक्टिविटीज के बीच डेटा पास करता है। Parcelable कोड लिखना सीरियलाइज़ेशन की तुलना में थोड़ा जटिल है। यह दो एक्टिविटीज के बीच डेटा पास करते समय अधिक टेम्प ऑब्जेक्ट्स नहीं बनाता।
Parcelable का सरल उदाहरण
import android.os.Parcel;
import android.os.Parcelable;
class ParcelObject implements Parcelable {
private String name;
protected ParcelObject(Parcel in) {
this.name = in.readString();
}
public ParcelObject(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public static final Creator<ParcelObject> CREATOR = new Creator<ParcelObject>() {
@Override
public ParcelObject createFromParcel(Parcel in) {
return new ParcelObject(in);
}
@Override
public ParcelObject[] newArray(int size) {
return new ParcelObject[size];
}
};
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(this.name);
}
}