Junior — Middle
Ինչպես է իրականացնում օբյեկտների սերիալիզացիան և դեսերիալիզացիան Parcelable-ով Android-ում?
sobes.tech AI
Պատասխան AI-ից
Android-ում, Parcelable ինտերֆեյսը օգտագործվում է օբյեկտների արդյունավետ սերիալիզացման համար՝ նրանց փոխանցումը բաղադրիչների միջև (օրինակ՝ Activity-ների միջև Intent-ի միջոցով):
Սերիալիզացիա (օբյեկտի գրառում):
- Կլասը պետք է իրականացնում
Parcelableինտերֆեյսը: - Պետք է վերագրել
writeToParcel(Parcel dest, int flags)մեթոդը, որտեղ գրանցում եք բոլոր դաշտերըParcel-ումwriteInt(),writeString()և այլ մեթոդներով:
Դեսիալիզացիա (օբյեկտի ընթերցում):
- Ստեղծեք
CREATORստատիկ դաշտըParcelable.Creator<T>տիպով, որը իրականացնում է հետևյալ մեթոդները՝createFromParcel(Parcel in)— կարդում է տվյալներըParcel-ից և ստեղծում օբյեկտ:newArray(int size)— ստեղծում է օբյեկտների զանգված:
- Կոնստրուկտորում, որը ընդունում է
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() = 0
companion object CREATOR : Parcelable.Creator<User> {
override fun createFromParcel(parcel: Parcel) = User(parcel)
override fun newArray(size: Int) = arrayOfNulls<User?>(size)
}
}
Այսպիսով, օբյեկտը կարող է փոխանցվել Intent-ի միջոցով՝
intent.putExtra("user", user)
և ստացվել՝
val user = intent.getParcelableExtra<User>("user")