Savedstate
آخر الأخبار | الإصدار الثابت | إصدار محتمل | الإصدار التجريبي | الإصدار الأوّلي |
---|---|---|---|---|
2 يوليو 2025 | 1.3.1 | - | - | - |
تعريف التبعيات
لإضافة تبعية على SavedState، يجب إضافة مستودع Google Maven إلى مشروعك. اطّلِع على مستودع Maven من Google لمزيد من المعلومات.
أضِف التبعيات الخاصة بالعناصر التي تحتاج إليها في ملف build.gradle
لتطبيقك أو وحدتك:
رائع
dependencies { // Java language implementation implementation "androidx.savedstate:savedstate:1.3.1" // Kotlin implementation "androidx.savedstate:savedstate-ktx:1.3.1" }
Kotlin
dependencies { // Java language implementation implementation("androidx.savedstate:savedstate:1.3.1") // Kotlin implementation("androidx.savedstate:savedstate-ktx:1.3.1") }
لمزيد من المعلومات حول العناصر التابعة، يُرجى الاطّلاع على إضافة عناصر تابعة للإنشاء.
الملاحظات
تساعدنا ملاحظاتك في تحسين Jetpack. يُرجى إعلامنا إذا اكتشفت مشاكل جديدة أو كانت لديك أفكار لتحسين هذه المكتبة. يُرجى الاطّلاع على المشاكل الحالية في هذه المكتبة قبل إنشاء مشكلة جديدة. يمكنك إضافة صوتك إلى مشكلة حالية من خلال النقر على زر النجمة.
يُرجى الاطّلاع على مستندات Issue Tracker للحصول على مزيد من المعلومات.
الإصدار 1.3
الإصدار 1.3.0
7 مايو 2025
تم طرح androidx.savedstate:savedstate-*:1.3.0
. يحتوي الإصدار 1.3.0 على عمليات الدمج هذه.
التغييرات المهمة منذ الإصدار 1.2.0
- تم نقل
LocalSavedStateRegistryOwner
من واجهة مستخدم Compose إلى وحدةsavedstate-compose
الجديدة حتى يمكن استخدام واجهات برمجة التطبيقات المساعدة المستندة إلى Compose خارج واجهة مستخدم Compose. يجب استخدام هذا الخيار دائمًا عند استخدام Compose UI1.9.0-alpha02
والإصدارات الأحدث، ولكنّه متوافق مع الإصدارات القديمة بحيث يمكن استخدامه مع جميع إصدارات Compose. - تم الآن نقل
savedstate-ktx
إضافات Kotlin إلى وحدة base savedstate الأساسية. - يمكن الآن حلّ مثيلات
SavedStateRegistryOwner
التي تم استردادها من خلالfindViewTreeSavedStateRegistryOwner
من خلال العناصر الرئيسية المنفصلة لعرض، مثلViewOverlay
. لمزيد من المعلومات عن عناصر العرض المنفصلة الرئيسية، يُرجى الاطّلاع على ملاحظات الإصدار الأساسية أو المستندات فيViewTree.setViewTreeDisjointParent
.
Kotlin Multiplatform
- أصبحت وحدة
SavedState
متوافقة الآن مع KMP. تشمل الأنظمة الأساسية المتوافقة الآن Android وiOS وLinux وMac وبيئات سطح المكتب المستندة إلى JVM. تقديم النوع غير الشفاف
SavedState
كطبقة تجريدية لتوفير طريقة متسقة لحفظ حالة التطبيق واستعادتها في KMP يتضمّنSavedStateReader
وSavedStateWriter
لتعديل الحالة التي سيتم حفظها. في نظام التشغيل Android،SavedState
هو اسم مستعار للنوعBundle
، ما يضمن التوافق الثنائي ويسهّل نقل واجهات برمجة التطبيقات الحالية إلى مجموعة مصادر مشتركة. على المنصات الأخرى، يكون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 Serialization
يتضمّن
SavedState
الآن إمكانية استخدام KotlinX Serialization. يمكنك تحويل فئة تمّت إضافة التعليق التوضيحي@Serializable
إليها إلىSavedState
باستخدام الطريقتَينencodeToSavedState
وdecodeFromSavedState
. إنّSavedState
الذي يتم عرضه هوBundle
عادي على Android ويمكن استخدامه من خلال أي واجهة برمجة تطبيقات تقبل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
، وهو عنصر تحكّم كسول في الخصائص، لتسهيل تخزين فئات@Serializable
فيSavedStateRegistryOwner
(مثلComponentActivity
وما إلى ذلك) وإعادة تلك الفئات تلقائيًا بعد إيقاف العملية وإعادة إنشائها.Fragment
يُرجى ملاحظة أنّsaved
المفوَّض كسول ولن يستدعي تعبير lambdainit
أو يحفظ أي شيء في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
.
الإصدار 1.3.0-rc01
23 أبريل 2025
تم طرح androidx.savedstate:savedstate-*:1.3.0-rc01
. يحتوي الإصدار 1.3.0-rc01 على عمليات الإيداع هذه.
الإصدار 1.3.0-beta01
9 أبريل 2025
تم طرح androidx.savedstate:savedstate-*:1.3.0-beta01
. يحتوي الإصدار 1.3.0-beta01 على عمليات الإيداع هذه.
تحديثات التبعيات
- تستهدف هذه المكتبة الآن مستوى لغة Kotlin 2.0 وتتطلّب الإصدار 2.0.0 أو إصدارًا أحدث من KGP. (Idb6b5)
الإصدار 1.3.0-alpha11
26 مارس 2025
تم إصدار androidx.savedstate:savedstate-*:1.3.0-alpha11
بدون أي تغييرات عامة مهمة. يحتوي الإصدار 1.3.0-alpha11 على عمليات الدمج هذه.
الإصدار 1.3.0-alpha10
12 مارس 2025
تم طرح 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)
تغييرات واجهة برمجة التطبيقات
- إزالة
getOrElse
منSavedStateReader
واستخدامgetOrNull() ?: else()
بدلاً منها (I87317، b/399820614) - إزالة المعدِّل
inline
من الطريقتَينSavedStateReader
وSavedStateWriter
(If2a02، b/399820614) - إزالة أدوات التسلسل المضمّنة الخاصة بنظام التشغيل Android لقائمتَي List وArray من واجهة برمجة التطبيقات العامة (Ida293)
- استبدال
SparseParcelableArraySerializer
بـSparseArraySerializer
(I91de8) - توفير سلوك متسق لجميع
SavedStateReader.get
من خلال عرض خطأ عندما لا يتطابق نوع القيمة مع نوع الإرجاع (I78c4a، b/399317598) - أعِد تسمية
SavedState*Delegates
إلىSavedState*Delegate
. (I8589b، b/399629301) - أعِد تسمية
SavedStateConfig
إلىSavedStateConfiguration
. (I043a5، b/399629301)
الإصدار 1.3.0-alpha09
26 فبراير 2025
تم طرح androidx.savedstate:savedstate-*:1.3.0-alpha09
. يحتوي الإصدار 1.3.0-alpha09 على عمليات الدمج هذه.
الميزات الجديدة
- أضِف خيارًا احتياطيًا للأنواع المضمّنة، ما يضمن إمكانية استخدام جميع الأنواع المتوافقة مع
Bundle
معencodeAsSavedState
/decodeFromSavedState
تلقائيًا أو، بالنسبة إلى السمات في فئات@Serializable
، من خلال التعليق التوضيحي@Contextual
. (Ic01d2) - توفير إمكانية استخدام
classDiscriminator
وclassDiscriminatorMode
علىSavedStateConfig
(I69b66، b/395104517)
تغييرات واجهة برمجة التطبيقات
- إضافة المَعلمة
SavedStateConfig
إلى مفوَّضيsaved()
(I39b3a) - تحديد المسلسلات المضمّنة كعناصر في نمط "سينغلتون" (Ifeee4)
- أصبحت سمات
SavedStateConfig
متاحة للجميع الآن، ما يتيح للوحدات الأخرى استخدام عمليات الضبط هذه. (Ie5f49، b/378897438) - إتاحة
@Serializer(with = ...)
لـMutableStateFlowSerializer
وMutableStateSerializer
(I90953) - إضافة
contentDeepToString
إلىSavedStateReader
(I14d10)
الإصدار 1.3.0-alpha08
12 فبراير 2025
تم طرح androidx.savedstate:savedstate-*:1.3.0-alpha08
. يحتوي الإصدار 1.3.0-alpha08 على عمليات الدمج هذه.
الميزات الجديدة
- نقل
MutableStateSerializer
إلىsavedstate-compose
منlifecycle-viewmodel-compose
، ما يتيح لك استخدام واجهات برمجة تطبيقات تسلسل SavedState معMutableState
في Compose (I4f690، b/378895074)
تغييرات واجهة برمجة التطبيقات
- أضِف دالة مصنع لإنشاء
SavedState
منSavedState
حالية. (I39f9a) - تضيف هذه السمة إمكانية استخدام
Array<SavedState>
وList<SavedState>
فيandroidx.savedstate
. (Idd8a5) - إضافة المَعلمة الاختيارية
SavedStateConfig
إلى ترميز/فك ترميز SavedState (I6c4c0)
الإصدار 1.3.0-alpha07
29 يناير 2025
تم طرح androidx.savedstate:savedstate-*:1.3.0-alpha07
. يحتوي الإصدار 1.3.0-alpha07 على عمليات الدمج هذه.
الميزات الجديدة
- أضِف
MutableStateFlowSerializer
لتسلسلkotlinx.coroutines.flow.MutableStateFlow
. (I6a892، b/378895070)
تغييرات واجهة برمجة التطبيقات
- استبدال دوال تفويض
SavedStateRegistryOwner.saved()
المحمّلة بشكل زائد بالمعلمات التلقائية (Icd1c1) - إنشاء ملخّص
JavaSerializableSerializer
وParcelableSerializer
(I268f6) - إزالة
T : CharSequence
العام منCharSequenceSerializer
(Ib40bd)
الإصدار 1.3.0-alpha06
11 ديسمبر 2024
تم طرح androidx.savedstate:savedstate-*:1.3.0-alpha06
. يحتوي الإصدار 1.3.0-alpha06 على عمليات الدمج هذه.
الميزات الجديدة
- يتوافق إطار عمل
SavedState
KMP الآن مع:IBinder
وSize
وSizeF
وArray<Parcelable>
وSparseArray<Parcelable>
وSerializable (على Android). (I1ba94، b/334076622) - أضِف مثيلات
KSerializer
التي يمكن استخدامها لترميز/فك ترميز أنواع Java وAndroid المتوافقة مع "الحزمة" من خلال وضع علامة@Serializable(with = ParcelableSerializer::class)
على الحقل ذي الصلة في صفك. (I8c10f وI28caf وb/376026712) - يمكن الآن حلّ مثيلات
SavedStateRegistryOwner
التي تم استردادها من خلالfindViewTreeSavedStateRegistryOwner
من خلال العناصر الرئيسية المنفصلة لعرض، مثلViewOverlay
. لمزيد من المعلومات عن عناصر العرض المنفصلة الرئيسية، يُرجى الاطّلاع على ملاحظات الإصدار الأساسية أو المستندات فيViewTree.setViewTreeDisjointParent
. (Iccb33)
تغييرات واجهة برمجة التطبيقات
- جعل التسميات وتنظيم الحِزم أكثر اتساقًا مع
SavedStateRegistryOwnerDelegate
(I8c135، b/376026744)
الإصدار 1.3.0-alpha05
13 نوفمبر 2024
تم طرح androidx.savedstate:savedstate-*:1.3.0-alpha05
. يحتوي الإصدار 1.3.0-alpha05 على عمليات الدمج هذه.
توافق KotlinX Serialization
يتضمّن
SavedState
الآن إمكانية استخدام KotlinX Serialization. يمكنك تحويل فئة تمّت إضافة التعليق التوضيحي@Serializable
إليها إلىSavedState
باستخدام الطريقتَينencodeToSavedState
وdecodeFromSavedState
. إنّSavedState
الذي يتم عرضه هوBundle
عادي على Android ويمكن استخدامه من خلال أي واجهة برمجة تطبيقات تقبل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
، وهو عنصر تحكّم كسول في الخصائص، لتسهيل تخزين فئات@Serializable
فيSavedStateRegistryOwner
(مثلComponentActivity
وما إلى ذلك) وإعادة تلك الفئات تلقائيًا بعد إيقاف العملية وإعادة إنشائها.Fragment
يُرجى ملاحظة أنّsaved
المفوَّض كسول ولن يستدعي تعبير lambdainit
أو يحفظ أي شيء في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
.
تغييرات واجهة برمجة التطبيقات
- أضِف
toMap
إلىSavedState
، ما يسمح بتحويل أيSavedState
إلىMap
عادي (نسخة سطحية). (I487b9، b/334076622) - تتيح
SavedState
KMP الآن استخدام المصفوفات. (Ic0552، b/334076622)
الإصدار 1.3.0-alpha04
30 أكتوبر 2024
تم طرح androidx.savedstate:savedstate-*:1.3.0-alpha04
. يحتوي الإصدار 1.3.0-alpha04 على عمليات الدمج هذه.
تغييرات واجهة برمجة التطبيقات
- أصبحت مكتبة SavedState KMP متوافقة الآن مع Char. (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)
الإصدار 1.3.0-alpha03
16 أكتوبر 2024
تم إصدار androidx.savedstate:savedstate-*:1.3.0-alpha03
بدون أي تغييرات ملحوظة. يحتوي الإصدار 1.3.0-alpha03 على عمليات الإيداع هذه.
الإصدار 1.3.0-alpha02
2 أكتوبر 2024
تم طرح androidx.savedstate:savedstate-*:1.3.0-alpha02
. يحتوي الإصدار 1.3.0-alpha02 على عمليات الدمج هذه.
Kotlin Multiplatform
- أصبحت وحدة
SavedState
متوافقة الآن مع KMP. تشمل الأنظمة الأساسية المتوافقة الآن Android وiOS وLinux وMac وبيئات سطح المكتب المستندة إلى JVM. (I26305، b/334076622)
الميزات الجديدة
- تقديم النوع غير الشفاف
SavedState
كطبقة تجريدية لتوفير طريقة متسقة لحفظ حالة التطبيق واستعادتها في KMP يتضمّنSavedStateReader
وSavedStateWriter
لتعديل الحالة التي سيتم حفظها. في نظام التشغيل Android،SavedState
هو اسم مستعار للنوعBundle
، ما يضمن التوافق الثنائي ويسهّل نقل واجهات برمجة التطبيقات الحالية إلى مجموعة مصادر مشتركة. على المنصات الأخرى، يكون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")
}
تغييرات واجهة برمجة التطبيقات
- أصبح كل من
SavedStateRegistry
وSavedStateRegistryController
متوافقًا مع KMP. (Id7bb8، b/334076622) - أصبحت
SavedState
وSavedStateWriter
وSavedStateReader
متوافقة مع KMP. (I26305، b/334076622)
الإصدار 1.3.0-alpha01
7 أغسطس 2024
تم طرح androidx.savedstate:savedstate:1.3.0-alpha01
وandroidx.savedstate:savedstate-ktx:1.3.0-alpha01
. يحتوي الإصدار 1.3.0-alpha01 على عمليات الدمج هذه.
تغييرات واجهة برمجة التطبيقات
- تم الآن نقل
savedstate-ktx
إضافات Kotlin إلى وحدة base savedstate الأساسية. (I1cc18، b/274803094)
ملاحظة
- تعديل
compileSdk
إلى 35 (5dc41be)
الإصدار 1.2.1
الإصدار 1.2.1
22 مارس 2023
تم طرح androidx.savedstate:savedstate:1.2.1
وandroidx.savedstate:savedstate-ktx:1.2.1
. يحتوي الإصدار 1.2.1 على عمليات الإيداع هذه.
تحديثات التبعيات
- يعتمد
SavedState
الآن على دورة الحياة2.6.1
. (c1f621)
الإصدار 1.2.0
الإصدار 1.2.0
29 يونيو 2022
تم طرح androidx.savedstate:savedstate:1.2.0
وandroidx.savedstate:savedstate-ktx:1.2.0
. يتضمّن الإصدار 1.2.0 عمليات الإيداع هذه.
التغييرات المهمة منذ الإصدار 1.1.0
- تتيح
SavedStateRegistryController
الآن إرفاقSavedStateRegistry
في وقت مبكر من خلالperformAttach()
. - يمكنك الآن استرداد
SavedStateProvider
تم تسجيله سابقًا منSavedStateRegistry
عبرgetSavedStateProvider()
. - تمت إعادة كتابة مكتبة
SavedState
بلغة Kotlin.- بالنسبة إلى
SavedStateRegistryOwner
، هذا تغيير غير متوافق مع المصدر للفئات المكتوبة بلغة Kotlin، ويجب الآن إلغاء السمةsavedStateRegistry
بدلاً من تنفيذ الدالةgetSavedStateRegistry()
السابقة. - بالنسبة إلى
ViewTreeSavedStateRegistryOwner
، هذا تغيير غير متوافق مع المصدر للفئات المكتوبة بلغة Kotlin، ويجب الآن استيراد طرق إضافة Kotlin مباشرةً واستخدامها فيView
منandroidx.savedstate.setViewTreeSavedStateRegistryOwner
وandroidx.savedstate.findViewTreeSavedStateRegistryOwner
لضبط المالك الذي تم ضبطه سابقًا والعثور عليه. يحلّ هذا الإصدار محلّ واجهة برمجة التطبيقاتsavedstate-ktx
الخاصة بـfindViewTreeSavedStateRegistryOwner
.
- بالنسبة إلى
التغييرات في السلوك
- لم يعُد
SavedStateRegistry
يحفظ حزمة فارغة إذا لم تكن هناك حالة لحفظها.
الإصدار 1.2.0-rc01
11 مايو 2022
تم طرح androidx.savedstate:savedstate:1.2.0-rc01
وandroidx.savedstate:savedstate-ktx:1.2.0-rc01
. يحتوي الإصدار 1.2.0-rc01 على عمليات الإيداع هذه.
التغييرات في المستندات
- تم تعديل مستندات
SavedStateRegistryOwner
Kdocs لتوضيح المسؤوليات والعقد الذي يلتزم به المالك بشأن كيفية تنفيذ الواجهة أو الوقت الذي يجب فيه استدعاء الطرق فيSavedStateRegistryController
. (Iefc95، b/228887344)
الإصدار 1.2.0-beta01
20 أبريل 2022
تم طرح androidx.savedstate:savedstate:1.2.0-beta01
وandroidx.savedstate:savedstate-ktx:1.2.0-beta01
. يحتوي الإصدار 1.2.0-beta01 على عمليات الإيداع هذه.
تغييرات واجهة برمجة التطبيقات
- تمت إعادة كتابة الفئتين
SavedStateRegistry
وViewTreeSavedStateRegistryOwner
بلغة Kotlin. بالنسبة إلىViewTreeSavedStateRegistryOwner
، هذا تغيير غير متوافق مع المصدر للفئات المكتوبة بلغة Kotlin، ويجب الآن استيراد طرق إضافة Kotlin مباشرةً واستخدامها فيView
منandroidx.savedstate.setViewTreeSavedStateRegistryOwner
وandroidx.savedstate.findViewTreeSavedStateRegistryOwner
لضبط المالك الذي تم ضبطه سابقًا والعثور عليه. يحلّ هذا الإصدار محلّ واجهة برمجة التطبيقاتsavedstate-ktx
الخاصة بـfindViewTreeSavedStateRegistryOwner
. وهي متوافقة مع الرموز الثنائية وتظل متوافقة مع المصدر بالنسبة إلى عمليات التنفيذ المكتوبة بلغة البرمجة Java. (b/220191285)
الإصدار 1.2.0-alpha02
6 أبريل 2022
تم طرح 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)
تغييرات واجهة برمجة التطبيقات
- تمت إعادة كتابة الفئات
SavedStateRegistryOwner
وSavedStateRegistryController
وRecreator
بلغة Kotlin. بالنسبة إلىSavedStateRegistryOwner
، هذا تغيير غير متوافق مع المصدر للفئات المكتوبة بلغة Kotlin، ويجب الآن إلغاء السمةsavedStateRegistry
بدلاً من تنفيذ الدالةgetSavedStateRegistry()
السابقة. وهي متوافقة مع الرمز الثنائي والمصدر للتطبيقات المكتوبة بلغة البرمجة Java. (b/220191285)
الإصدار 1.2.0-alpha01
26 يناير 2022
تم طرح androidx.savedstate:savedstate:1.2.0-alpha01
وandroidx.savedstate:savedstate-ktx:1.2.0-alpha01
. يحتوي الإصدار 1.2.0-alpha01 على عمليات الإيداع هذه.
الميزات الجديدة
- يتيح
SavedStateRegistryController
الآن إرفاقSavedStateRegistry
في وقت مبكر من خلالperformAttach()
. (Ice4bf)
التغييرات في السلوك
- لم يعُد
SavedStateRegistry
يحفظ حزمة فارغة إذا لم تكن هناك حالة لحفظها. (aosp/1896865 وb/203457956)
الإصدار 1.1.0
الإصدار 1.1.0
10 شباط (فبراير) 2021
تم طرح androidx.savedstate:savedstate:1.1.0
وandroidx.savedstate:savedstate-ktx:1.1.0
. يحتوي الإصدار 1.1.0 على عمليات الإيداع هذه.
التغييرات الرئيسية منذ الإصدار 1.0.0
ViewTreeSavedStateRegistryOwner
API: تتيح لك واجهة برمجة التطبيقات الجديدةViewTreeSavedStateRegistryOwner.get(View)
استردادSavedStateRegistry
الذي يحتوي علىView
معيّن. يجب الترقية إلى Activity1.2.0
وFragment1.3.0
وAppCompat1.3.0-alpha01
أو الإصدارات الأحدث لملء هذا الحقل بشكلٍ صحيح.- حزمة
savedstate-ktx
: تمت إضافة حزمةsavedstate-ktx
الجديدة مع إضافةfindViewTreeSavedStateRegistryOwner()
Kotlin للعمل معViewTreeSavedStateRegistryOwner
.
الإصدار 1.1.0-rc01
16 كانون الأول (ديسمبر) 2020
تم إصدار الإصدارَين androidx.savedstate:savedstate:1.1.0-rc01
وandroidx.savedstate:savedstate-ktx:1.1.0-rc01
بدون أي تغييرات منذ 1.1.0-beta01
. يحتوي الإصدار 1.1.0-rc01 على عمليات الإيداع هذه.
الإصدار 1.1.0-beta01
1 تشرين الأول (أكتوبر) 2020
تم إصدار الإصدارَين androidx.savedstate:savedstate:1.1.0-beta01
وandroidx.savedstate:savedstate-ktx:1.1.0-beta01
بدون أي تغييرات منذ 1.1.0-alpha01
. يحتوي الإصدار 1.1.0-beta01 على عمليات الإيداع هذه.
الإصدار 1.1.0-alpha01
20 أيار (مايو) 2020
تم طرح 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()
Kotlin للعمل معViewTreeSavedStateRegistryOwner
. (aosp/1299434)
الإصدار 1.0.0
الإصدار 1.0.0
5 أيلول (سبتمبر) 2019
تم طرح androidx.savedstate:savedstate:1.0.0
. يمكنك الاطّلاع على عمليات الإيداع المضمَّنة في هذا الإصدار هنا.
الميزات الرئيسية للإصدار 1.0.0 من SavedState
تمت ترقية androidx.savedstate
إلى إصدار ثابت. هذه مجموعة من واجهات برمجة التطبيقات التي تتيح للمطوّرين إدخال المكوّنات في عملية الاستعادة / saveInstanceState. نقطة الدخول الرئيسية إلى واجهة برمجة التطبيقات هي SavedStateRegistry
، والتي توفّر طريقة لاسترداد الحالات المحفوظة سابقًا باستخدام consumeRestoredStateForKey
وتسجيل دالة رد الاتصال في registerSavedStateProvider
لتوفير حالة محفوظة عند طلب النظام لها.
الإصدار 1.0.0-rc01
2 تموز (يوليو) 2019
تم طرح androidx.savedstate:savedstate:1.0.0-rc01
. يمكنك الاطّلاع على عمليات الإيداع المضمَّنة في هذا الإصدار هنا.
إصلاح الأخطاء
- تم إصلاح قاعدة Proguard غير الصحيحة (b/132655499)
الإصدار 1.0.0-beta01
7 أيار (مايو) 2019
تم طرح androidx.savedstate:savedstate:1.0.0-beta01
. يمكنك الاطّلاع على عمليات الإيداع المضمَّنة في هذا الإصدار هنا.
الإصدار 1.0.0-alpha02
13 مارس 2019
تم طرح 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
عند إعادة تشغيل المكوّن المالك.
تغييرات واجهة برمجة التطبيقات
- تمت إزالة الأدوية الجنيسة من
SavedStateRegistry<T>
- تمت إزالة AbstractSavedStateRegistry وBundlableSavedStateRegistry، يُرجى استخدام
SavedStateRegistry
البسيط بدلاً من ذلك - تمت إعادة تسمية
BundleSavedStateRegistryOwner
إلىSavedStateRegistryOwner
الإصدار 1.0.0-alpha01
17 كانون الأول (ديسمبر) 2018
هذا هو الإصدار الأول من SavedState
.
الميزات الجديدة
androidx.savedstate
هي مجموعة جديدة من واجهات برمجة التطبيقات في مرحلة الإصدار الأوّلي تتيح للمطوّرين إضافة مكوّنات إلى عملية الاستعادة / saveInstanceState. نقطة الدخول الرئيسية إلى واجهة برمجة التطبيقات هي SavedStateRegistry<T>
، والتي توفّر طريقة لاسترداد الحالة المحفوظة سابقًا من خلال consumeRestoredStateForKey
وتسجيل دالة رد الاتصال في registerSavedStateProvider
لتوفير الحالة المحفوظة عند طلب النظام لها.