Sobes.tech
Back to questions
Junior — Middle
83

Объясните, что такое интерфейс Parcelable и для чего он используется в Android-разработке.

Companies where asked
GrowFood
БрайтСофт
Ozon FreshOzon Fresh

Answer from AI

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-приложения.