Savedstate
| آخر الأخبار | الإصدار الثابت | إصدار محتمل | الإصدار التجريبي | الإصدار الأوّلي |
|---|---|---|---|---|
| 22 أكتوبر 2025 | 1.3.3 | 1.4.0-rc01 | - | - |
تحديد الاعتماديات
لإضافة اعتمادية على SavedState، يجب تضمين مستودع Google Maven في مشروعك. اطّلِع على مستودع Maven من Google لمزيد من المعلومات.
أضِف الاعتماديات الخاصة بالعناصر التي تحتاج إليها في ملف build.gradle لتطبيقك أو وحدتك:
Groovy
dependencies { // Java language implementation implementation "androidx.savedstate:savedstate:1.3.3" // Kotlin implementation "androidx.savedstate:savedstate-ktx:1.3.3" }
Kotlin
dependencies { // Java language implementation implementation("androidx.savedstate:savedstate:1.3.3") // Kotlin implementation("androidx.savedstate:savedstate-ktx:1.3.3") }
لمزيد من المعلومات حول الاعتماديات، يُرجى الاطّلاع على إضافة اعتماديات البناء.
الملاحظات
تساعدنا ملاحظاتك في تحسين Jetpack. يُرجى إعلامنا إذا اكتشفت مشاكل جديدة أو كانت لديك أفكار لتحسين هذه المكتبة. يُرجى الاطّلاع على المشاكل الحالية في هذه المكتبة قبل إنشاء مشكلة جديدة. يمكنك إضافة صوتك إلى مشكلة حالية من خلال النقر على زر النجمة.
يُرجى الاطّلاع على مستندات Issue Tracker للحصول على مزيد من المعلومات.
الإصدار 1.4
الإصدار 1.4.0-rc01
22 أكتوبر 2025
تم إصدار androidx.savedstate:savedstate-*:1.4.0-rc01 بدون أي تغييرات منذ الإصدار 1.4.0-beta01. يتضمّن الإصدار 1.4.0-rc01 هذه التعديلات.
الإصدار 1.4.0-beta01
8 أكتوبر 2025
تم إصدار androidx.savedstate:savedstate-*:1.4.0-beta01 بدون أي تغييرات ملحوظة منذ آخر إصدار أولي. يتضمّن الإصدار 1.4.0-beta01 هذه التعديلات.
الإصدار 1.4.0-alpha03
27 أغسطس 2025
تم طرح androidx.savedstate:savedstate-*:1.4.0-alpha03. يتضمّن الإصدار 1.4.0-alpha03 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- إضافة دعم للأنواع التي يمكن أن تقبل القيم الفارغة في
encodeToSavedStateوdecodeFromSavedState(I79062، b/439527454) - تحديث Compose إلى الإصدار 1.9.0 (I2b9de)
الإصدار 1.4.0-alpha02
13 أغسطس 2025
تم طرح androidx.savedstate:savedstate-*:1.4.0-alpha02. يتضمّن الإصدار 1.4.0-alpha02 هذه التعديلات.
الإصدار 1.4.0-alpha01
30 يوليو 2025
تم طرح androidx.savedstate:savedstate-*:1.4.0-alpha01. يتضمّن الإصدار 1.4.0-alpha01 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تمّت إضافة دعم مدمج للأنواع التي يمكن أن تقبل القيم الفارغة في
SavedStateRegistryOwner.saved، لتسهيل حفظ واستعادة الخصائص القابلة لأن تكون فارغة. (Ia632، b/421325690)
الإصدار 1.3
الإصدار 1.3.3
17 سبتمبر 2025
تم طرح androidx.savedstate:savedstate-*:1.3.3. يتضمّن الإصدار 1.3.3 هذه التعديلات.
إصلاح الأخطاء
- تم إصلاح الخطأ المتعلّق بعدم تطبيق المكوّن الإضافي لبرنامج Compose Compiler، ما أدّى إلى تعذُّر استخدام عناصر
SavedStateKMP. (Id2290، b/443965665)
الإصدار 1.3.2
27 أغسطس 2025
تم طرح androidx.savedstate:savedstate-*:1.3.2. يتضمّن الإصدار 1.3.2 هذه التعديلات.
الميزات الجديدة
- تمّت إضافة أهداف جديدة من Kotlin Multiplatform (KMP) إلى حزمة SavedState
*-compose. يتوافق Lifecycle الآن مع الأنظمة الأساسية التالية بشكلٍ كامل: JVM (Android وDesktop)، وNative (Linux وiOS وwatchOS وmacOS وMinGW)، والويب (JavaScript وWasmJS). (/Idcf26)
الإصدار 1.3.1
16 يوليو 2025
تم طرح androidx.savedstate:savedstate-*:1.3.1. يتضمّن الإصدار 1.3.1 على هذه التعديلات.
إصلاح الأخطاء
- تمّت إضافة جميع أهداف KMP المدعومة بواسطة التعليقات التوضيحية إلى عناصر
SavedState. - تمّت إضافة أهداف جديدة من Kotlin Multiplatform (KMP) إلى عناصر
SavedState. يتوافقSavedStateالآن مع الأنظمة الأساسية التالية بشكلٍ كامل: JVM (Android وDesktop)، وNative (Linux وiOS وwatchOS وmacOS وMinGW)، والويب (JavaScript وWasmJS). يُرجى العِلم أنّه لم تتم إضافة أي استهدافات جديدة لمنصة KMP إلى عناصر*-compose، لأنّ ذلك يعتمد على الإصدار الثابت من Compose 1.9. (I062f4).
الإصدار 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. - تم الآن نقل إضافات Kotlin الخاصة بـ
savedstate-ktxإلى وحدة savedstate الأساسية. - يمكن الآن حلّ مثيلات
SavedStateRegistryOwnerالتي تم استردادها عبرfindViewTreeSavedStateRegistryOwnerمن خلال العناصر الرئيسية المنفصلة للواجهة، مثلViewOverlay. لمزيد من المعلومات عن عناصر العرض المنفصلة الرئيسية، يُرجى الاطّلاع على ملاحظات الإصدار الأساسية أو المستندات فيViewTree.setViewTreeDisjointParent.
Kotlin Multiplatform
- أصبحت وحدة
SavedStateمتوافقة الآن مع KMP. تشمل الأنظمة الأساسية المتوافقة الآن Android وiOS وLinux وMac وبيئات سطح المكتب JVM. تم تقديم نوع
SavedStateكمجرّد (opaque type) لتوفير طريقة موحّدة لحفظ واستعادة حالة التطبيق في 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يتم تفعيلها عند الحاجة، ولن تستدعي lambda الخاص بـ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.
الإصدار 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 هذه التعديلات.
الميزات الجديدة
- يتوافق إطار عمل KMP الآن مع:
IBinderوSizeوSizeFوArray<Parcelable>وSparseArray<Parcelable>وSerializable (على Android).SavedState(I1ba94، b/334076622) - إضافة مثيلات
KSerializerالتي يمكن استخدامها لترميز/فك ترميز أنواع Java وAndroid المدعومة في Bundle من خلال وسم الحقل المعني في فئتك بـ@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يتم تفعيلها عند الحاجة، ولن تستدعي lambda الخاص بـ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.
تغييرات واجهة برمجة التطبيقات
- تمّت إضافة
toMapإلىSavedState، ما يسمح بتحويل أيSavedStateإلىMapعادي (نسخة سطحية). (I487b9، b/334076622) - تتيح
SavedStateKMP الآن استخدام المصفوفات. (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 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تم الآن نقل إضافات Kotlin الخاصة بـ
savedstate-ktxإلى وحدة 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الآن على Lifecycle2.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يحفظ حزمة Bundle فارغة إذا لم تكن هناك حالة لحفظها.
الإصدار 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 هذه التعديلات.
التغييرات في المستندات
- تم تعديل مستندات
SavedStateRegistryOwnerKdocs لتوضيح المسؤوليات والعقد الذي يلتزم به المالك بشأن كيفية تنفيذ الواجهة أو الوقت الذي يجب فيه استدعاء الطرق في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يحفظ حزمة Bundle فارغة إذا لم تكن هناك حالة لحفظها. (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
-
ViewTreeSavedStateRegistryOwnerAPI: تتيح لك واجهة برمجة التطبيقات الجديدة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 لتوفير الحالة المحفوظة عند طلب النظام لها.