Объясните, что такое интерфейс Parcelable и для чего он используется в Android-разработке.
Ответ от нейросети
sobes.tech AI
Интерфейс Parcelable в Android используется для эффективной сериализации объектов, чтобы передавать их между компонентами приложения, например, между Activity или Fragment. В отличие от стандартного Serializable, Parcelable оптимизирован под Android и работает быстрее, так как реализует собственный механизм упаковки и распаковки данных.
Чтобы класс стал Parcelable, нужно реализовать методы writeToParcel() для записи данных в Parcel и конструктор, который восстанавливает объект из Parcel. Также требуется создать статическое поле CREATOR, которое помогает системе создавать объекты из Parcel.
Пример:
class User(val name: String, val age: Int) : Parcelable {
constructor(parcel: Parcel) : this(
parcel.readString() ?: "",
parcel.readInt()
)
override fun writeToParcel(parcel: Parcel, flags: Int) {
parcel.writeString(name)
parcel.writeInt(age)
}
override fun describeContents(): Int = 0
companion object CREATOR : Parcelable.Creator<User> {
override fun createFromParcel(parcel: Parcel): User = User(parcel)
override fun newArray(size: Int): Array<User?> = arrayOfNulls(size)
}
}
Таким образом, Parcelable позволяет быстро и эффективно передавать сложные объекты между компонентами Android-приложения.