ذخیره شده
آخرین بهروزرسانی | انتشار پایدار | کاندیدای انتشار | انتشار بتا | انتشار آلفا |
---|---|---|---|---|
۲۲ اکتبر ۲۰۲۵ | ۱.۳.۳ | ۱.۴.۰-rc01 | - | - |
اعلام وابستگیها
برای افزودن وابستگی به SavedState، باید مخزن Google Maven را به پروژه خود اضافه کنید. برای اطلاعات بیشتر، مخزن Maven گوگل را مطالعه کنید.
وابستگیهای مربوط به مصنوعات مورد نیاز خود را در فایل build.gradle
برای برنامه یا ماژول خود اضافه کنید:
شیار
dependencies { // Java language implementation implementation "androidx.savedstate:savedstate:1.3.3" // Kotlin implementation "androidx.savedstate:savedstate-ktx:1.3.3" }
کاتلین
dependencies { // Java language implementation implementation("androidx.savedstate:savedstate:1.3.3") // Kotlin implementation("androidx.savedstate:savedstate-ktx:1.3.3") }
برای اطلاعات بیشتر در مورد وابستگیها، به «افزودن وابستگیهای ساخت» مراجعه کنید.
بازخورد
بازخورد شما به بهبود Jetpack کمک میکند. اگر مشکلات جدیدی کشف کردید یا ایدههایی برای بهبود این کتابخانه دارید، به ما اطلاع دهید. لطفاً قبل از ایجاد یک کتابخانه جدید، نگاهی به مشکلات موجود در این کتابخانه بیندازید. میتوانید با کلیک بر روی دکمه ستاره، رأی خود را به یک مشکل موجود اضافه کنید.
برای اطلاعات بیشتر به مستندات ردیاب مشکل مراجعه کنید.
نسخه ۱.۴
نسخه ۱.۴.۰-rc01
۲۲ اکتبر ۲۰۲۵
androidx.savedstate:savedstate-*:1.4.0-rc01
بدون هیچ تغییری از زمان انتشار نسخه ۱.۴.۰-beta01 منتشر شده است. نسخه ۱.۴.۰-rc01 شامل این کامیتها است.
نسخه ۱.۴.۰-بتا۰۱
۸ اکتبر ۲۰۲۵
androidx.savedstate:savedstate-*:1.4.0-beta01
بدون هیچ تغییر قابل توجهی از آخرین نسخه آلفا منتشر شده است. نسخه 1.4.0-beta01 شامل این کامیتها است.
نسخه ۱.۴.۰-آلفا۰۳
۲۷ آگوست ۲۰۲۵
androidx.savedstate:savedstate-*:1.4.0-alpha03
منتشر شد. نسخه 1.4.0-alpha03 شامل این کامیتها است.
تغییرات API
- پشتیبانی از انواع تهیپذیر (nullable) در
encodeToSavedState
وdecodeFromSavedState
اضافه شد. ( I79062 ، b/439527454 ) - بهروزرسانی Compose به نسخه ۱.۹.۰ ( I2b9de )
نسخه ۱.۴.۰-آلفا۰۲
۱۳ آگوست ۲۰۲۵
androidx.savedstate:savedstate-*:1.4.0-alpha02
منتشر شد. نسخه 1.4.0-alpha02 شامل این کامیتها است.
نسخه ۱.۴.۰-آلفا۰۱
۳۰ ژوئیه ۲۰۲۵
androidx.savedstate:savedstate-*:1.4.0-alpha01
منتشر شد. نسخه 1.4.0-alpha01 شامل این کامیتها است.
تغییرات API
- پشتیبانی بومی برای انواع تهیپذیر در
SavedStateRegistryOwner.saved
اضافه شد که ذخیره و بازیابی ویژگیهای تهیپذیر را ساده میکند. ( Ia632 ، b/421325690 )
نسخه ۱.۳
نسخه ۱.۳.۳
۱۷ سپتامبر ۲۰۲۵
androidx.savedstate:savedstate-*:1.3.3
منتشر شد. نسخه ۱.۳.۳ شامل این کامیتها است.
رفع اشکالات
- خطایی که باعث میشد افزونه Compose Compiler اعمال نشود و باعث خرابی مصنوعات
SavedState
KMP شود، برطرف شد. ( Id2290 ، b/443965665 )
نسخه ۱.۳.۲
۲۷ آگوست ۲۰۲۵
androidx.savedstate:savedstate-*:1.3.2
منتشر شد. نسخه ۱.۳.۲ شامل این کامیتها است.
ویژگیهای جدید
- اهداف جدید Kotlin Multiplatform (KMP) را به مصنوع SavedState
*-compose
اضافه کنید. Lifecycle اکنون در مجموع از پلتفرمهای زیر پشتیبانی میکند: JVM (اندروید و دسکتاپ)، Native (لینوکس، iOS، watchOS، macOS، MinGW) و وب (جاوااسکریپت، WasmJS). ( /Idcf26 )
نسخه ۱.۳.۱
۱۶ ژوئیه ۲۰۲۵
androidx.savedstate:savedstate-*:1.3.1
منتشر شد. نسخه ۱.۳.۱ شامل این کامیتها است.
رفع اشکالات
- تمام اهداف KMP پشتیبانی شده توسط حاشیهنویسیها را به مصنوعات
SavedState
اضافه کنید. - اهداف جدید Kotlin Multiplatform (KMP) به مصنوعات
SavedState
اضافه شد.SavedState
اکنون در مجموع از پلتفرمهای زیر پشتیبانی میکند: JVM (اندروید و دسکتاپ)، Native (لینوکس، iOS، watchOS، macOS، MinGW) و وب (جاوااسکریپت، WasmJS). توجه داشته باشید که هیچ هدف KMP جدیدی به مصنوعات*-compose
اضافه نشده است، زیرا این امر به انتشار پایدار Compose 1.9 بستگی دارد. ( I062f4 ).
نسخه ۱.۳.۰
۷ مه ۲۰۲۵
androidx.savedstate:savedstate-*:1.3.0
منتشر شد. نسخه ۱.۳.۰ شامل این کامیتها است.
تغییرات مهم از زمان ۱.۲.۰
-
LocalSavedStateRegistryOwner
از Compose UI به ماژول جدیدsavedstate-compose
منتقل شده است تا APIهای کمکی مبتنی بر Compose آن بتوانند خارج از Compose UI نیز استفاده شوند. این ماژول باید همیشه هنگام استفاده از Compose UI1.9.0-alpha02
و بالاتر استفاده شود، اما با نسخههای قبلی سازگار است به طوری که میتوان از آن با تمام نسخههای Compose استفاده کرد. - افزونههای کاتلین
savedstate-ktx
اکنون به ماژول پایه savedstate منتقل شدهاند. - نمونههای
SavedStateRegistryOwner
که از طریقfindViewTreeSavedStateRegistryOwner
بازیابی میشوند، اکنون میتوانند از طریق والدهای مجزای یک نما، مانندViewOverlay
، حل شوند. برای اطلاعات بیشتر در مورد والدهای مجزای نما، به یادداشتهای انتشار core یا مستندات موجود درViewTree.setViewTreeDisjointParent
مراجعه کنید.
کاتلین چندسکویی
- ماژول
SavedState
اکنون با KMP سازگار است. پلتفرمهای پشتیبانیشده اکنون شامل اندروید، iOS، لینوکس، مک و محیطهای دسکتاپ JVM هستند. نوع دادهی غیرشفاف
SavedState
به عنوان یک انتزاع معرفی کنید تا روشی سازگار برای ذخیره و بازیابی وضعیت برنامه در KMP فراهم شود. این شامل یکSavedStateReader
وSavedStateWriter
برای تغییر وضعیتی است که باید ذخیره شود. در اندروید،SavedState
یک نام مستعار برایBundle
است که سازگاری دودویی را تضمین میکند و مهاجرت APIهای موجود به یک مجموعه منبع مشترک را تسهیل میکند. در سایر پلتفرمها،SavedState
یک نمونه ازMap<String, Any>
است.// Create a new SavedState object using the savedState DSL: val savedState = savedState { putInt("currentPage", 1) putString("filter", "favorites") } // Read from a SavedState object val currentPage = savedState.read { getInt("currentPage") } // Edit an existing SavedState object savedState.write { remove("currentPage") }
پشتیبانی از سریالسازی KotlinX
SavedState
اکنون از پشتیبانی KotlinX Serialization پشتیبانی میکند. میتوانید یک کلاس که با@Serializable
حاشیهنویسی شده است را با استفاده از متدهایencodeToSavedState
وdecodeFromSavedState
به یکSavedState
تبدیل کنید.SavedState
برگردانده شده یکBundle
معمولی در اندروید است و میتواند توسط هر API کهBundle
میپذیرد، استفاده شود.@Serializable data class Person(val firstName: String, val lastName: String) fun main() { val person = Person("John", "Doe") val encoded: SavedState = encodeToSavedState(person) val decoded: Person = decodeFromSavedState(encoded) }
در حالی که اکثر انواع (مانند انواع اولیه) مستقیماً و بدون نیاز به هیچ پیکربندی پشتیبانی میشوند، سریالایزرهای اضافی که میتوانند با
@Serializable(with = ___:class)
استفاده شوند، میتوانند در بستهandroidx.savedstate.serialization.serializers
در ماژولsavedstate
و بستهandroidx.savedstate.compose.serialization.serializers
در ماژولsavedstate-compose
یافت شوند.ما همچنین
saved
، یک نمایندهی ویژگی lazy، را گنجاندهایم تا ذخیرهی کلاسهای@Serializable
در یکSavedStateRegistryOwner
(مثلاًComponentActivity
،Fragment
و غیره) را آسان کنیم و این کلاسها را به طور خودکار در طول مرگ و بازسازی فرآیند بازیابی کنیم. لطفاً توجه داشته باشید که نمایندهیsaved
تنبل است و تا زمانی که به آن دسترسی پیدا نشود، لامبداinit
را فراخوانی نمیکند یا چیزی را درSavedStateRegistry
ذخیره نمیکند.@Serializable data class Person(val firstName: String, val lastName: String) class MyActivity : ComponentActivity() { var person by saved { Person("John", "Doe") } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) this.person = Person("Jane", "Doe") } }
یک نماینده ویژگی
saved
مشابه برایSavedStateHandle
در Lifecycle2.9.0
اضافه شده است.
نسخه ۱.۳.۰-rc01
۲۳ آوریل ۲۰۲۵
androidx.savedstate:savedstate-*:1.3.0-rc01
منتشر شد. نسخه 1.3.0-rc01 شامل این کامیتها است.
نسخه ۱.۳.۰-بتا۰۱
۹ آوریل ۲۰۲۵
androidx.savedstate:savedstate-*:1.3.0-beta01
منتشر شد. نسخه 1.3.0-beta01 شامل این کامیتها است.
بهروزرسانیهای وابستگی
- این کتابخانه اکنون سطح زبان Kotlin 2.0 را هدف قرار میدهد و به KGP 2.0.0 یا جدیدتر نیاز دارد. ( Idb6b5 )
نسخه ۱.۳.۰-آلفا۱۱
۲۶ مارس ۲۰۲۵
androidx.savedstate:savedstate-*:1.3.0-alpha11
بدون هیچ تغییر عمومی قابل توجهی منتشر شده است. نسخه 1.3.0-alpha11 شامل این کامیتها است.
نسخه ۱.۳.۰-آلفا۱۰
۱۲ مارس ۲۰۲۵
androidx.savedstate:savedstate-*:1.3.0-alpha10
منتشر شد. نسخه 1.3.0-alpha10 شامل این کامیتها است.
ویژگیهای جدید
- انواع متدهای غیر اصلاحشده را برای مجموعههای
get
درSavedStateReader
اضافه کنید. ( I0b641 ، b/399820614 ) - اضافه کردن
encodeDefaults
بهSavedStateConfiguration
، امکان سفارشیسازی کدگذاری ویژگیهایی با مقادیر پیشفرض را فراهم میکند. ( I893cc ، b/395104517 ) -
SnapshotStateMapSerializer
برای پشتیبانیmutableStateMapOf
اضافه کنید. ( Ie6f19 , b/378895074 ) -
SnapshotStateListSerializer
برای پشتیبانیmutableStateListOf
اضافه کنید. ( I4d888 , b/378895074 ) - متدهای جایگزین
getOrNull
برای انواعSavedStateReader.get
اضافه کنید. این متدها مقادیر اولیه را به صورت خودکار جعبهبندی میکنند. ( I6228c ، b/399820614 )
تغییرات API
- تابع
getOrElse
ازSavedStateReader
حذف کنید و ازgetOrNull() ?: else()
کنید. ( I87317 , b/399820614 ) - اصلاحگر
inline
را از متدهایSavedStateReader
وSavedStateWriter
حذف کنید. ( If2a02 , b/399820614 ) - حذف سریالایزرهای لیست و آرایه داخلی مخصوص اندروید از API عمومی ( Ida293 )
- جایگزینی
SparseParcelableArraySerializer
باSparseArraySerializer
( I91de8 ) - با پرتاب کردن (throwing) در مواقعی که نوع مقدار با نوع بازگشتی مطابقت ندارد، باعث شوید که همه
SavedStateReader.get
به طور مداوم رفتار کنند ( I78c4a ، b/399317598 ). - نام
SavedState*Delegates
را بهSavedState*Delegate
تغییر دهید. ( I8589b ، b/399629301 ) - نام
SavedStateConfig
را بهSavedStateConfiguration
تغییر دهید. ( I043a5 ، b/399629301 )
نسخه ۱.۳.۰-آلفا۰۹
۲۶ فوریه ۲۰۲۵
androidx.savedstate:savedstate-*:1.3.0-alpha09
منتشر شد. نسخه 1.3.0-alpha09 شامل این کامیتها است.
ویژگیهای جدید
- برای انواع داخلی، قابلیت بازگشت به عقب اضافه کنید و اطمینان حاصل کنید که همه انواع پشتیبانی شده توسط
Bundle
میتوانند به طور پیشفرض باencodeAsSavedState
/decodeFromSavedState
یا برای ویژگیهای کلاسهای@Serializable
، از طریق حاشیهنویسی@Contextual
استفاده شوند. ( Ic01d2 ) - پشتیبانی از
classDiscriminator
وclassDiscriminatorMode
را رویSavedStateConfig
لحاظ کنید. ( I69b66 , b/395104517 )
تغییرات API
- پارامتر
SavedStateConfig
به delegate هایsaved()
اضافه کنید ( I39b3a ) - اشیاء سینگلتون سریالایزر داخلی میسازد ( Ifeee4 )
- ویژگیهای
SavedStateConfig
اکنون عمومی هستند و به ماژولهای دیگر امکان میدهند از این پیکربندیها استفاده کنند. ( Ie5f49 , b/378897438 ) - پشتیبانی
@Serializer(with = ...)
برایMutableStateFlowSerializer
وMutableStateSerializer
( I90953 ) - افزودن
contentDeepToString
بهSavedStateReader
( I14d10 )
نسخه ۱.۳.۰-آلفا۰۸
۱۲ فوریه ۲۰۲۵
androidx.savedstate:savedstate-*:1.3.0-alpha08
منتشر شد. نسخه 1.3.0-alpha08 شامل این کامیتها است.
ویژگیهای جدید
-
MutableStateSerializer
ازlifecycle-viewmodel-compose
savedstate-compose
-compose منتقل کنید، که به شما امکان میدهد از APIهای سریالسازی SavedState باMutableState
مربوط به Compose استفاده کنید. ( I4f690 ، b/378895074 )
تغییرات API
- یک تابع factory برای ایجاد
SavedState
از یکSavedState
موجود اضافه کنید. ( I39f9a ) - پشتیبانی از
Array<SavedState>
وList<SavedState>
درandroidx.savedstate
اضافه میکند. ( Idd8a5 ) - پارامتر اختیاری
SavedStateConfig
به رمزگذاری/رمزگشایی SavedState اضافه کنید ( I6c4c0 )
نسخه ۱.۳.۰-آلفا۰۷
۲۹ ژانویه ۲۰۲۵
androidx.savedstate:savedstate-*:1.3.0-alpha07
منتشر شد. نسخه 1.3.0-alpha07 شامل این کامیتها است.
ویژگیهای جدید
- برای سریالسازی
kotlinx.coroutines.flow.MutableStateFlow
MutableStateFlowSerializer
را اضافه کنید. ( I6a892 ، b/378895070 )
تغییرات API
- توابع نمایندهی
SavedStateRegistryOwner.saved()
سربارگذاری شدهاند را با پارامترهای پیشفرض ( Icd1c1 ) جایگزین کنید. -
JavaSerializableSerializer
وParcelableSerializer
را انتزاعی ( I268f6 ) کنید - حذف ژنریک
T : CharSequence
ازCharSequenceSerializer
( Ib40bd )
نسخه ۱.۳.۰-alpha06
۱۱ دسامبر ۲۰۲۴
androidx.savedstate:savedstate-*:1.3.0-alpha06
منتشر شد. نسخه 1.3.0-alpha06 شامل این کامیتها است.
ویژگیهای جدید
-
SavedState
KMP اکنون از موارد زیر پشتیبانی میکند:IBinder
،Size
،SizeF
،Array<Parcelable>
،SparseArray<Parcelable>
و Serializable (اندروید). ( I1ba94 ، b/334076622 ) - با علامتگذاری فیلد مربوطه در کلاس خود با
@Serializable(with = ParcelableSerializer::class)
. (I8c10f, I28caf , b/376026712) نمونههایKSerializer
که میتوانند برای رمزگذاری/رمزگشایی انواع جاوا و اندروید پشتیبانی شده توسط Bundle استفاده شوند، اضافه کنید. ( I8c10f , I28caf, b/376026712 ) - نمونههای
SavedStateRegistryOwner
که از طریقfindViewTreeSavedStateRegistryOwner
بازیابی میشوند، اکنون میتوانند از طریق والدهای مجزای یک نما، مانندViewOverlay
، حل شوند. برای اطلاعات بیشتر در مورد والدهای مجزای نما، به یادداشتهای انتشار core یا مستندات موجود درViewTree.setViewTreeDisjointParent
مراجعه کنید. ( Iccb33 )
تغییرات API
- نامگذاریها و سازماندهی بستهها را با
SavedStateRegistryOwnerDelegate
( I8c135 ، b/376026744 ) سازگارتر کنید.
نسخه ۱.۳.۰-آلفا۰۵
۱۳ نوامبر ۲۰۲۴
androidx.savedstate:savedstate-*:1.3.0-alpha05
منتشر شد. نسخه 1.3.0-alpha05 شامل این کامیتها است.
پشتیبانی از سریالسازی KotlinX
SavedState
اکنون از پشتیبانی KotlinX Serialization پشتیبانی میکند. میتوانید یک کلاس حاشیهنویسی شده با@Serializable
را با استفاده از متدهایencodeToSavedState
وdecodeFromSavedState
به یکSavedState
تبدیل کنید.SavedState
برگردانده شده یکBundle
معمولی در اندروید است و میتواند توسط هر API کهBundle
میپذیرد، استفاده شود. ( I6f59f , b/374102924 )@Serializable data class Person(val firstName: String, val lastName: String) fun main() { val person = Person("John", "Doe") val encoded: SavedState = encodeToSavedState(person) val decoded: Person = decodeFromSavedState(encoded) }
ما همچنین
saved
، یک نمایندهی ویژگی lazy، را گنجاندهایم تا ذخیرهی کلاسهای@Serializable
در یکSavedStateRegistryOwner
(مثلاًComponentActivity
،Fragment
و غیره) را آسان کنیم و این کلاسها را به طور خودکار در طول مرگ و بازسازی فرآیند بازیابی کنیم. لطفاً توجه داشته باشید که نمایندهیsaved
lazy است و تا زمانی که به آن دسترسی پیدا نشود، لامبداinit
را فراخوانی نمیکند یا چیزی را درSavedStateRegistry
ذخیره نمیکند. ( I66739 ، b/376027806 )@Serializable data class Person(val firstName: String, val lastName: String) class MyActivity : ComponentActivity() { var person by saved { Person("John", "Doe") } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) this.person = Person("Jane", "Doe") } }
یک نماینده ویژگی
saved
مشابه برایSavedStateHandle
در Lifecycle2.9.0-alpha07
اضافه شده است.
تغییرات API
-
toMap
بهSavedState
اضافه کنید، که به هرSavedState
اجازه میدهد به یکMap
معمولی (کپی سطحی) تبدیل شود. ( I487b9 ، b/334076622 ) -
SavedState
KMP اکنون از آرایهها پشتیبانی میکند. ( Ic0552 ، b/334076622 )
نسخه ۱.۳.۰-آلفا۰۴
۳۰ اکتبر ۲۰۲۴
androidx.savedstate:savedstate-*:1.3.0-alpha04
منتشر شد. نسخه 1.3.0-alpha04 شامل این کامیتها است.
تغییرات API
- SavedState KMP اکنون از کاراکتر ( I9ac2f ، b/334076622 ) پشتیبانی میکند.
-
putNull
وisNull
به SavedState KMP اضافه کنید. ( Iea71d , b/334076622 ) - پارامترهای کارخانه
savedState
اضافی را که ازMap<String, Any>
اولیه پشتیبانی میکنند، اضافه کنید ( I9b37d , b/334076622 ) - SavedState KMP اکنون از مقایسه
contentDeepEquals
پشتیبانی میکند. ( Ia515c ، b/334076622 ) - SavedState KMP اکنون از Long پشتیبانی میکند. ( I4c180 ، b/334076622 )
نسخه ۱.۳.۰-آلفا۰۳
۱۶ اکتبر ۲۰۲۴
androidx.savedstate:savedstate-*:1.3.0-alpha03
بدون هیچ تغییر قابل توجهی منتشر شده است. نسخه 1.3.0-alpha03 شامل این کامیتها است.
نسخه ۱.۳.۰-آلفا۰۲
۲ اکتبر ۲۰۲۴
androidx.savedstate:savedstate-*:1.3.0-alpha02
منتشر شد. نسخه 1.3.0-alpha02 شامل این کامیتها است.
کاتلین چندسکویی
- ماژول
SavedState
اکنون با KMP سازگار است. پلتفرمهای پشتیبانیشده اکنون شامل اندروید، iOS، لینوکس، مک و محیطهای دسکتاپ JVM هستند. ( I26305 ، b/334076622 )
ویژگیهای جدید
- نوع دادهی غیرشفاف
SavedState
به عنوان یک انتزاع معرفی کنید تا روشی سازگار برای ذخیره و بازیابی وضعیت برنامه در KMP فراهم شود. این شامل یکSavedStateReader
وSavedStateWriter
برای تغییر وضعیتی است که باید ذخیره شود. در اندروید،SavedState
یک نام مستعار برایBundle
است که سازگاری دودویی را تضمین میکند و مهاجرت APIهای موجود به یک مجموعه منبع مشترک را تسهیل میکند. در سایر پلتفرمها،SavedState
یک نمونهیMap<String, Any>
است. ( I18575 , b/334076622 )
// Create a new SavedState object using the savedState DSL:
val savedState = savedState {
putInt("currentPage", 1)
putString("filter", "favorites")
}
// Read from a SavedState object
val currentPage = savedState.read { getInt("currentPage") }
// Edit an existing SavedState object
savedState.write {
remove("currentPage")
}
تغییرات API
-
SavedStateRegistry
وSavedStateRegistryController
اکنون با KMP سازگار هستند. ( Id7bb8 ، b/334076622 ) -
SavedState
،SavedStateWriter
وSavedStateReader
اکنون با KMP سازگار هستند. ( I26305 ، b/334076622 )
نسخه ۱.۳.۰-آلفا۰۱
۷ آگوست ۲۰۲۴
androidx.savedstate:savedstate:1.3.0-alpha01
و androidx.savedstate:savedstate-ktx:1.3.0-alpha01
منتشر شدند. نسخه 1.3.0-alpha01 شامل این کامیتها است.
تغییرات API
- افزونههای کاتلین
savedstate-ktx
اکنون به ماژول پایه savedstate منتقل شدهاند. ( I1cc18 ، b/274803094 )
توجه داشته باشید
-
compileSdk
به ۳۵ ( 5dc41be ) بهروزرسانی کنید.
نسخه ۱.۲.۱
نسخه ۱.۲.۱
۲۲ مارس ۲۰۲۳
androidx.savedstate:savedstate:1.2.1
و androidx.savedstate:savedstate-ktx:1.2.1
منتشر شدند. نسخه ۱.۲.۱ شامل این کامیتها است.
بهروزرسانیهای وابستگی
-
SavedState
اکنون به Lifecycle2.6.1
وابسته است. ( c1f621 )
نسخه ۱.۲.۰
نسخه ۱.۲.۰
۲۹ ژوئن ۲۰۲۲
androidx.savedstate:savedstate:1.2.0
و androidx.savedstate:savedstate-ktx:1.2.0
منتشر شدند. نسخه ۱.۲.۰ شامل این کامیتها است.
تغییرات مهم از زمان ۱.۱.۰
-
SavedStateRegistryController
اکنون امکان اتصال زودهنگامSavedStateRegistry
را از طریقperformAttach()
فراهم میکند. - اکنون میتوانید با استفاده از تابع
getSavedStateProvider()
یکSavedStateProvider
که قبلاً ثبت شده است را از یکSavedStateRegistry
بازیابی کنید. - کتابخانه
SavedState
در کاتلین بازنویسی شده است.- برای
SavedStateRegistryOwner
، این یک تغییر ناسازگار با منبع برای کلاسهایی است که در کاتلین نوشته شدهاند - اکنون باید به جای پیادهسازی تابعgetSavedStateRegistry()
قبلی، ویژگیsavedStateRegistry
را بازنویسی کنید. - برای
ViewTreeSavedStateRegistryOwner
، این یک تغییر ناسازگار با منبع برای کلاسهایی است که در Kotlin نوشته شدهاند - اکنون باید مستقیماً متدهای افزونه Kotlin را درView
مربوط بهandroidx.savedstate.setViewTreeSavedStateRegistryOwner
وandroidx.savedstate.findViewTreeSavedStateRegistryOwner
وارد کرده و از آنها برای تنظیم و یافتن مالکی که قبلاً تنظیم شده است، استفاده کنید. این جایگزین APIsavedstate-ktx
مربوط بهfindViewTreeSavedStateRegistryOwner
میشود.
- برای
تغییرات رفتاری
- اگر هیچ حالتی برای ذخیره وجود نداشته باشد،
SavedStateRegistry
دیگر یک Bundle خالی ذخیره نمیکند.
نسخه ۱.۲.۰-rc01
۱۱ مه ۲۰۲۲
androidx.savedstate:savedstate:1.2.0-rc01
و androidx.savedstate:savedstate-ktx:1.2.0-rc01
منتشر شدند. نسخه 1.2.0-rc01 شامل این کامیتها است.
تغییرات مستندات
- اسناد K مربوط
SavedStateRegistryOwner
بهروزرسانی شدهاند تا مسئولیتها و قراردادهایی که مالک در مورد نحوه پیادهسازی رابط یا زمان فراخوانی متدها درSavedStateRegistryController
دارد، روشن شود. ( Iefc95 ، b/228887344 )
نسخه ۱.۲.۰-بتا۰۱
۲۰ آوریل ۲۰۲۲
androidx.savedstate:savedstate:1.2.0-beta01
و androidx.savedstate:savedstate-ktx:1.2.0-beta01
منتشر شدند. نسخه 1.2.0-beta01 شامل این کامیتها است.
تغییرات API
- کلاسهای
SavedStateRegistry
وViewTreeSavedStateRegistryOwner
در کاتلین بازنویسی شدهاند. برایViewTreeSavedStateRegistryOwner
، این یک تغییر ناسازگار با منبع برای کلاسهایی است که در کاتلین نوشته شدهاند - اکنون باید مستقیماً متدهای افزونه کاتلین را درView
مربوط بهandroidx.savedstate.setViewTreeSavedStateRegistryOwner
وandroidx.savedstate.findViewTreeSavedStateRegistryOwner
وارد کرده و از آنها برای تنظیم و یافتن مالکی که قبلاً تنظیم شده است، استفاده کنید. این جایگزین APIsavedstate-ktx
مربوط بهfindViewTreeSavedStateRegistryOwner
میشود. این API با باینری سازگار است و برای پیادهسازیهای نوشته شده به زبان برنامهنویسی جاوا، سازگار با منبع باقی میماند. ( b/220191285 )
نسخه ۱.۲.۰-آلفا۰۲
۶ آوریل ۲۰۲۲
androidx.savedstate:savedstate:1.2.0-alpha02
و androidx.savedstate:savedstate-ktx:1.2.0-alpha02
منتشر شدند. نسخه 1.2.0-alpha02 شامل این کامیتها است.
ویژگیهای جدید
- اکنون میتوانید
SavedStateProvider
ثبتشدهی قبلی را ازSavedStateRegistry
با استفاده ازgetSavedStateProvider()
بازیابی کنید. ( I7ea47 , b/215406268 )
تغییرات API
- کلاسهای
SavedStateRegistryOwner
،SavedStateRegistryController
وRecreator
در کاتلین بازنویسی شدهاند. برایSavedStateRegistryOwner
، این یک تغییر ناسازگار با منبع برای کلاسهایی است که در کاتلین نوشته شدهاند - اکنون باید به جای پیادهسازی تابعgetSavedStateRegistry()
قبلی، ویژگیsavedStateRegistry
بازنویسی کنید. این با پیادهسازیهای نوشته شده به زبان برنامهنویسی جاوا سازگار با باینری و منبع است. ( b/220191285 )
نسخه ۱.۲.۰-آلفا۰۱
۲۶ ژانویه ۲۰۲۲
androidx.savedstate:savedstate:1.2.0-alpha01
و androidx.savedstate:savedstate-ktx:1.2.0-alpha01
منتشر شدند. نسخه 1.2.0-alpha01 شامل این کامیتها است.
ویژگیهای جدید
- اکنون
SavedStateRegistryController
امکان اتصال زودهنگامSavedStateRegistry
را از طریقperformAttach()
فراهم میکند. ( Ice4bf )
تغییرات رفتاری
- اگر هیچ وضعیتی برای ذخیره وجود نداشته باشد،
SavedStateRegistry
دیگر یک Bundle خالی ذخیره نمیکند. ( aosp/1896865 , b/203457956 )
نسخه ۱.۱.۰
نسخه ۱.۱.۰
۱۰ فوریه ۲۰۲۱
androidx.savedstate:savedstate:1.1.0
و androidx.savedstate:savedstate-ktx:1.1.0
منتشر شدند. نسخه ۱.۱.۰ شامل این کامیتها است.
تغییرات عمده از زمان ۱.۰.۰
- رابط برنامهنویسی کاربردی
ViewTreeSavedStateRegistryOwner
: یک رابط برنامهنویسی کاربردی جدیدViewTreeSavedStateRegistryOwner.get(View)
به شما امکان میدهد تاSavedStateRegistry
موجود در یک نمونهView
را بازیابی کنید. برای پر کردن صحیح این رابط، باید به Activity1.2.0
، Fragment1.3.0
و AppCompat1.3.0-alpha01
یا بالاتر ارتقا دهید. - مصنوع
savedstate-ktx
: مصنوع جدیدsavedstate-ktx
به همراه یک افزونهی کاتلینfindViewTreeSavedStateRegistryOwner()
برای کار باViewTreeSavedStateRegistryOwner
اضافه شده است.
نسخه ۱.۱.۰-rc01
۱۶ دسامبر ۲۰۲۰
androidx.savedstate:savedstate:1.1.0-rc01
و androidx.savedstate:savedstate-ktx:1.1.0-rc01
بدون هیچ تغییری از زمان 1.1.0-beta01
منتشر شدهاند. نسخه ۱.۱.۰-rc01 شامل این کامیتها است.
نسخه ۱.۱.۰-بتا۰۱
۱ اکتبر ۲۰۲۰
androidx.savedstate:savedstate:1.1.0-beta01
و androidx.savedstate:savedstate-ktx:1.1.0-beta01
بدون هیچ تغییری از زمان 1.1.0-alpha01
منتشر شدهاند. نسخه 1.1.0-beta01 شامل این کامیتها است.
نسخه ۱.۱.۰-آلفا۰۱
۲۰ مه ۲۰۲۰
androidx.savedstate:savedstate:1.1.0-alpha01
و androidx.savedstate:savedstate-ktx:1.1.0-alpha01
منتشر شدند. نسخه 1.1.0-alpha01 شامل این کامیتها است.
ویژگیهای جدید
- یک رابط برنامهنویسی کاربردی جدید
ViewTreeSavedStateRegistryOwner.get(View)
به شما امکان میدهد تاSavedStateRegistry
موجود در یک نمونهView
بازیابی کنید. برای پر کردن صحیح این مقدار، باید به Activity1.2.0-alpha05
، Fragment1.3.0-alpha05
و AppCompat1.3.0-alpha01
ارتقا دهید. ( aosp/1298679 ) - مصنوع جدید
savedstate-ktx
به همراه افزونهی کاتلینfindViewTreeSavedStateRegistryOwner()
برای کار باViewTreeSavedStateRegistryOwner
اضافه شده است. ( aosp/1299434 )
نسخه ۱.۰.۰
نسخه ۱.۰.۰
۵ سپتامبر ۲۰۱۹
androidx.savedstate:savedstate:1.0.0
منتشر شد. کامیتهای موجود در این نسخه را میتوانید اینجا پیدا کنید.
ویژگیهای اصلی SavedState 1.0.0
androidx.savedstate
به نسخه پایدار ارتقا یافت. این مجموعهای از APIها است که به توسعهدهندگان اجازه میدهد کامپوننتها را به فرآیند restore / saveInstanceState اضافه کنند. نقطه ورودی اصلی API، SavedStateRegistry
است که راهی برای بازیابی حالتهای ذخیره شده قبلی با استفاده از consumeRestoredStateForKey
فراهم میکند و یک فراخوانی برای registerSavedStateProvider
ثبت میکند تا پس از درخواست سیستم، حالت ذخیره شده را ارائه دهد.
نسخه ۱.۰.۰-rc01
۲ ژوئیه ۲۰۱۹
androidx.savedstate:savedstate:1.0.0-rc01
منتشر شد. کامیتهای موجود در این نسخه را میتوانید اینجا پیدا کنید.
رفع اشکالات
- اصلاح قانون نادرست پروگارد ( b/132655499 )
نسخه ۱.۰.۰-بتا۰۱
۷ مه ۲۰۱۹
androidx.savedstate:savedstate:1.0.0-beta01
منتشر شد. کامیتهای موجود در این نسخه را میتوانید اینجا پیدا کنید.
نسخه ۱.۰.۰-آلفا۰۲
۱۳ مارس ۲۰۱۹
androidx.savedstate:savedstate:1.0.0-alpha02
منتشر شد. androidx.savedstate:savedstate
مصنوعات androidx.savedstate:savedstate-bundle
و androidx.savedstate:savedstate-common
در یک مصنوع ترکیب میکند، زیرا تصمیم گرفته شده است که زیرساخت savedstate سادهسازی شود و ژنریکها از SavedStateRegistry
حذف شوند. بنابراین، نیازی به ماژولهای جداگانه نیست.
لیست کامل کامیتهای موجود در این نسخه را میتوانید اینجا پیدا کنید.
ویژگیهای جدید
-
SavedStateRegistry.runOnNextRecreaction(Class<? extends AutoRecreated> clazz )
اضافه شد. کلاس داده شده نمونهسازی میشود و متدAutoRecreated.onRecreated
هنگام راهاندازی مجدد کامپوننت مالک اجرا میشود.
تغییرات API
- ژنریکها از
SavedStateRegistry<T>
حذف شدند - AbstractSavedStateRegistry و BundlableSavedStateRegistry حذف شدهاند، به جای آن از
SavedStateRegistry
ساده استفاده کنید. -
BundleSavedStateRegistryOwner
بهSavedStateRegistryOwner
تغییر نام داده است.
نسخه ۱.۰.۰-آلفا۰۱
۱۷ دسامبر ۲۰۱۸
این اولین نسخه از SavedState
است.
ویژگیهای جدید
androidx.savedstate
مجموعهای جدید از APIهای آلفا است که به توسعهدهندگان اجازه میدهد کامپوننتها را به فرآیند restore / saveInstanceState اضافه کنند. نقطه ورودی اصلی API، SavedStateRegistry<T>
است که راهی برای بازیابی وضعیت ذخیرهشده قبلی از طریق consumeRestoredStateForKey
و ثبت یک فراخوانی مجدد به registerSavedStateProvider
برای ارائه وضعیت ذخیرهشده پس از درخواست سیستم، فراهم میکند.