ذخیره شده

کامپوننت‌های قابل اتصالی بنویسید که وضعیت رابط کاربری را هنگام از کار افتادن یک فرآیند ذخیره کنند و هنگام راه‌اندازی مجدد فرآیند، آن را بازیابی کنند.
آخرین به‌روزرسانی انتشار پایدار کاندیدای انتشار انتشار بتا انتشار آلفا
۲۲ اکتبر ۲۰۲۵ ۱.۳.۳ ۱.۴.۰-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 UI 1.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 در Lifecycle 2.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 در Lifecycle 2.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 منتشر شدند. نسخه ۱.۲.۱ شامل این کامیت‌ها است.

به‌روزرسانی‌های وابستگی

نسخه ۱.۲.۰

نسخه ۱.۲.۰

۲۹ ژوئن ۲۰۲۲

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 وارد کرده و از آنها برای تنظیم و یافتن مالکی که قبلاً تنظیم شده است، استفاده کنید. این جایگزین API savedstate-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 وارد کرده و از آنها برای تنظیم و یافتن مالکی که قبلاً تنظیم شده است، استفاده کنید. این جایگزین API savedstate-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 را بازیابی کنید. برای پر کردن صحیح این رابط، باید به Activity 1.2.0 ، Fragment 1.3.0 و AppCompat 1.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 بازیابی کنید. برای پر کردن صحیح این مقدار، باید به Activity 1.2.0-alpha05 ، Fragment 1.3.0-alpha05 و AppCompat 1.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 برای ارائه وضعیت ذخیره‌شده پس از درخواست سیستم، فراهم می‌کند.