ذخیره شده
| آخرین بهروزرسانی | انتشار پایدار | کاندیدای انتشار | انتشار بتا | انتشار آلفا |
|---|---|---|---|---|
| ۲۲ اکتبر ۲۰۲۵ | ۱.۳.۳ | ۱.۴.۰-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 اعمال نشود و باعث خرابی مصنوعات
SavedStateKMP شود، برطرف شد. ( 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-composesavedstate-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.MutableStateFlowMutableStateFlowSerializerرا اضافه کنید. ( 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 شامل این کامیتها است.
ویژگیهای جدید
-
SavedStateKMP اکنون از موارد زیر پشتیبانی میکند: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و غیره) را آسان کنیم و این کلاسها را به طور خودکار در طول مرگ و بازسازی فرآیند بازیابی کنیم. لطفاً توجه داشته باشید که نمایندهیsavedlazy است و تا زمانی که به آن دسترسی پیدا نشود، لامبدا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 ) -
SavedStateKMP اکنون از آرایهها پشتیبانی میکند. ( 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 برای ارائه وضعیت ذخیرهشده پس از درخواست سیستم، فراهم میکند.