Junior — Middle
Android-də Parcelable istifadə edərək obyektlərin seriyalaşdırılması və deserializasiyası necə həyata keçirilir?
sobes.tech Süni İntellekt
AI-dan cavab
Android-də, Parcelable interfeysi obyektlərin effektiv seriyalash üçün istifadə olunur və onları komponentlər arasında (məsələn, Activity arasında Intent vasitəsilə) ötürməyə imkan verir.
Seriyalash (obyekti yazmaq):
- Sinif
Parcelableinterfeysini həyata keçirməlidir. writeToParcel(Parcel dest, int flags)metodunu yenidən yazın, burada obyektin bütün sahələriniwriteInt(),writeString()və s. metodları iləParcel-a yazın.
Deseriyalash (obyekti oxumaq):
Parcelable.Creator<T>tipində statikCREATORsahəsini yaradın, bu metodları həyata keçirir:createFromParcel(Parcel in)—Parcel-dan məlumatları oxuyur və obyekt yaradır.newArray(int size)— obyektlərin massivini yaradır.
Parcel-ı qəbul edən konstruktorunda, sahələri yazıldığı ardıcıllıqla oxuyun.
Nümunə:
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() = 0
companion object CREATOR : Parcelable.Creator<User> {
override fun createFromParcel(parcel: Parcel) = User(parcel)
override fun newArray(size: Int) = arrayOfNulls<User?>(size)
}
}
Beləliklə, obyekt Intent vasitəsilə ötürülə bilər:
intent.putExtra("user", user)
və alınır:
val user = intent.getParcelableExtra<User>("user")