Was ist der Unterschied zwischen den Schnittstellen Serializable und Parcelable beim Übertragen von Objekten in Android?
sobes.tech KI
Antwort von AI
Serializable und Parcelable sind Schnittstellen zur Serialisierung von Objekten in Android, aber sie haben unterschiedliche Eigenschaften:
-
Serializable: ist die Standard-Schnittstelle von Java. Es ist einfach zu verwenden (einfach die Schnittstelle implementieren), aber es ist langsamer und verursacht mehr Overhead bei der Serialisierung.
-
Parcelable: ist eine spezifische Android-Schnittstelle, die eine manuelle Implementierung der Methoden zum Schreiben und Lesen von Daten erfordert. Es ist viel schneller und effizienter, was wichtig ist, um Objekte zwischen Android-Komponenten zu übertragen (z.B. über
IntentoderBundle).
Beispiel für die Verwendung von Parcelable:
public class User implements Parcelable {
private String name;
private int age;
protected User(Parcel in) {
name = in.readString();
age = in.readInt();
}
public static final Creator<User> CREATOR = new Creator<User>() {
@Override
public User createFromParcel(Parcel in) {
return new User(in);
}
@Override
public User[] newArray(int size) {
return new User[size];
}
};
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(name);
dest.writeInt(age);
}
}
Daher ist es bei der Übertragung von Objekten in Android vorzuziehen, Parcelable wegen seiner Leistung zu verwenden.