Savedstate

Bir işlem sonlandığında kullanıcı arayüzü durumunu kaydeden ve işlem yeniden başlatıldığında geri yükleyen, takılabilir bileşenler yazın.
Son Güncelleme Kararlı Sürüm Sürüm Adayı Beta sürümü Alfa Sürümü
23 Eylül 2026 1.5.0 - - 1.6.0-alpha04

Bağımlılıkları bildirme

SavedState'e bağımlılık eklemek için Google Maven deposunu projenize eklemeniz gerekir. Daha fazla bilgi için Google'ın Maven deposunu inceleyin.

Uygulamanız veya modülünüz için build.gradle dosyasına ihtiyacınız olan yapılarla ilgili bağımlılıkları ekleyin:

Groovy

dependencies {
    // Java language implementation
    implementation "androidx.savedstate:savedstate:1.5.0"

    // Kotlin
    implementation "androidx.savedstate:savedstate-ktx:1.5.0"
}

Kotlin

dependencies {
    // Java language implementation
    implementation("androidx.savedstate:savedstate:1.5.0")

    // Kotlin
    implementation("androidx.savedstate:savedstate-ktx:1.5.0")
}

Bağımlılıklar hakkında daha fazla bilgi için Derleme bağımlılıkları ekleme başlıklı makaleyi inceleyin.

Geri bildirim

Geri bildiriminiz Jetpack'in iyileştirilmesine yardımcı olur. Yeni sorunlar keşfederseniz veya bu kitaplığı iyileştirmeye yönelik fikirleriniz varsa lütfen bize bildirin. Yeni bir sorun oluşturmadan önce lütfen bu kitaplıktaki mevcut sorunlara göz atın. Yıldız düğmesini tıklayarak mevcut bir soruna oyunuzu ekleyebilirsiniz.

Yeni sorun oluşturma

Daha fazla bilgi için Sorun İzleyici belgelerini inceleyin.

Sürüm 1.6

Sürüm 1.6.0-alpha04

23 Eylül 2026

androidx.savedstate:savedstate-*:1.6.0-alpha04 iptal edilir. 1.6.0-alpha04 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • androidx.lifecycle:lifecycle-runtime bağımlılığı 2.10.0 sürümüne güncellendi. Bu sürüm, paketlenmiş yaşam döngüsü çalışma zamanı lint kontrollerinin AGP 9.5.0-alpha04 veya sonraki sürümlerle çalışması için gereklidir. (I99bfd, b/556807521)

Sürüm 1.6.0-alpha03

9 Eylül 2026

androidx.savedstate:savedstate-*:1.6.0-alpha03 iptal edilir. 1.6.0-alpha03 sürümü bu commit'leri içerir.

API Değişiklikleri

  • SavedStateRegistry oluşturucusunda boş ilk duruma izin verildi. (I76006)

Sürüm 1.6.0-alpha02

26 Ağustos 2026

androidx.savedstate:savedstate-*:1.6.0-alpha02 iptal edilir. 1.6.0-alpha02 sürümü bu commit'leri içerir.

API Değişiklikleri

  • SavedStateRegistry sınıfına herkese açık oluşturucular eklendi ve SavedStateRegistry sınıfının SavedStateProvider ve SavedStateRestorer sınıflarını uygulaması sağlandı. (I3c696)
  • Üst düzey SavedStateProvider arayüzü eklendi. (I20f9d)
  • restoreState(savedState: SavedState?) ile üst düzey SavedStateRestorer arayüzü eklendi ve yayınlanmamış SavedStateRegistry.SavedStateConsumer kaldırıldı. (Idc01d)
  • AutoRecreated ve runOnNextRecreation desteği sonlandırıldı. Bunun yerine SavedStateProvider ve SavedStateRestorer kullanılabilir. (Iadc00)
  • SavedStateRegistry üzerinde SavedStateConsumer arayüzünü kullanıma sunma. Kayıtlı sağlayıcıların, geri yükleme sırasında veya durum zaten geri yüklenmişse kayıt olduktan hemen sonra geri yüklenen durumu otomatik olarak alıp kullanmasına olanak tanır. (I9a378)

Sürüm 1.6.0-alpha01

12 Ağustos 2026

androidx.savedstate:savedstate-*:1.6.0-alpha01 iptal edilir. 1.6.0-alpha01 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • LocalSavedStateRegistryOwner özelliğini kullanmak için Compose UI 1.8.0 veya sonraki bir sürüm gerekir. Bu, dahili yansıtma geri dönüşlerini kaldırarak performansı artırır ancak istemciler için katı bir bağımlılık yükseltmesi zorunlu kılar. (I16fb0)

Sürüm 1.5

Sürüm 1.5.0

19 Mayıs 2026

androidx.savedstate:savedstate-*:1.5.0 iptal edilir. 1.5.0 sürümü bu commit'leri içerir.

1.4.0 sürümünden beri yapılan önemli değişiklikler:

  • SavedState nesneleri için genel serileştirmeyi etkinleştirerek tüm platformlarda CBOR veya JSON gibi standart biçimler kullanılarak kodlanmalarına ve kodlarının çözülmesine olanak tanır. (Iafda4, b/425919375)
  • Anahtarları kullanarak Kotlin Serializable nesnelerini doğrudan depolamaya ve almaya olanak tanımak, SavedState API'leriyle entegrasyonu kolaylaştırmak için putKotlinSerializable ve getKotlinSerializable uzantı işlevlerini SavedStateWriter ve SavedStateReader'ye ekleyin. (Iba02e)
  • Özel sahip bileşenleri oluştururken standart kodları azaltmak için LifecycleOwner, ViewModelStoreOwner ve SavedStateRegistryOwner için fabrika işlevleri ekleyin. (I9682c)
  • SnapshotStateSet (mutableStateSetOf() üzerinden oluşturulmuş) öğelerini rememberSerializable ile kaydetme ve geri yükleme özelliğini etkinleştirin. Artık özel bir tasarruf aracı gerektirmeden rememberSerializable içinde SnapshotStateSet kullanabilirsiniz. (I9a4ed, b/449498367)

Sürüm 1.5.0-rc01

6 Mayıs 2026

androidx.savedstate:savedstate-*:1.5.0-rc01 iptal edilir. 1.5.0-rc01 sürümü bu commit'leri içerir.

Sürüm 1.5.0-beta01

22 Nisan 2026

androidx.savedstate:savedstate-*:1.5.0-beta01 iptal edilir. 1.5.0-beta01 sürümü bu commit'leri içerir.

Sürüm 1.5.0-alpha02

25 Mart 2026

androidx.savedstate:savedstate-*:1.5.0-alpha02 iptal edilir. 1.5.0-alpha02 sürümü bu commit'leri içerir.

Sürüm 1.5.0-alpha01

11 Mart 2026

androidx.savedstate:savedstate-*:1.5.0-alpha01 iptal edilir. 1.5.0-alpha01 sürümü bu commit'leri içerir.

Yeni Özellikler

  • SavedState nesneleri için genel serileştirmeyi etkinleştirerek tüm platformlarda CBOR veya JSON gibi standart biçimler kullanılarak kodlanmalarına ve kodlarının çözülmesine olanak tanır. (Iafda4, b/425919375)

API Değişiklikleri

  • putKotlinSerializable ve getKotlinSerializable uzantı işlevlerini SavedStateWriter ve SavedStateReader'ye ekleyerek Kotlin Serializable nesnelerinin anahtarlar kullanılarak doğrudan depolanmasına ve alınmasına olanak tanıyın, SavedState API'leriyle entegrasyonu kolaylaştırın. (Iba02e)
  • Özel sahip bileşenleri oluştururken standart kodları azaltmak için LifecycleOwner, ViewModelStoreOwner ve SavedStateRegistryOwner için fabrika işlevleri ekleyin. (I9682c)
  • SnapshotStateSet (mutableStateSetOf() üzerinden oluşturulmuş) öğelerini rememberSerializable ile kaydetme ve geri yükleme özelliğini etkinleştirin. Artık özel bir koruyucu gerektirmeden rememberSerializable içinde SnapshotStateSet kullanabilirsiniz. (I9a4ed, b/449498367)

Sürüm 1.4

Sürüm 1.4.0

5 Kasım 2025

androidx.savedstate:savedstate-*:1.4.0 iptal edilir. 1.4.0 sürümü bu commit'leri içerir.

Sürüm 1.4.0-rc01

22 Ekim 2025

androidx.savedstate:savedstate-*:1.4.0-rc01, 1.4.0-beta01 sürümünden bu yana herhangi bir değişiklik yapılmadan yayınlandı. 1.4.0-rc01 sürümü bu commit'leri içerir.

Sürüm 1.4.0-beta01

8 Ekim 2025

androidx.savedstate:savedstate-*:1.4.0-beta01, son alfa sürümünden bu yana önemli bir değişiklik yapılmadan yayınlandı. 1.4.0-beta01 sürümü bu commit'leri içerir.

Sürüm 1.4.0-alpha03

27 Ağustos 2025

androidx.savedstate:savedstate-*:1.4.0-alpha03 iptal edilir. 1.4.0-alpha03 sürümü bu commit'leri içerir.

API Değişiklikleri

  • encodeToSavedState ve decodeFromSavedState'da boş değer atanabilir türler için destek ekleyin. (I79062, b/439527454)
  • Oluşturma'yı 1.9.0 sürümüne güncelleyin. (I2b9de)

Sürüm 1.4.0-alpha02

13 Ağustos 2025

androidx.savedstate:savedstate-*:1.4.0-alpha02 iptal edilir. 1.4.0-alpha02 sürümü bu commit'leri içerir.

Sürüm 1.4.0-alpha01

30 Temmuz 2025

androidx.savedstate:savedstate-*:1.4.0-alpha01 iptal edilir. 1.4.0-alpha01 sürümü bu commit'leri içerir.

API Değişiklikleri

  • SavedStateRegistryOwner.saved'da null değer atanabilir türler için yerel destek eklenerek null değer atanabilir özelliklerin kaydedilmesi ve geri yüklenmesi kolaylaştırıldı. (Ia632, b/421325690)

Sürüm 1.3

Sürüm 1.3.3

17 Eylül 2025

androidx.savedstate:savedstate-*:1.3.3 iptal edilir. 1.3.3 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • SavedState KMP yapılarının bozulmasına neden olan, Compose Compiler eklentisinin uygulanmamasıyla ilgili hata düzeltildi. (Id2290, b/443965665)

Sürüm 1.3.2

27 Ağustos 2025

androidx.savedstate:savedstate-*:1.3.2 iptal edilir. 1.3.2 sürümü bu commit'leri içerir.

Yeni Özellikler

  • SavedState *-compose yapay ürününe yeni Kotlin Multiplatform (KMP) hedefleri ekleyin. Lifecycle artık toplamda şu platformları destekliyor: JVM (Android ve Masaüstü), Native (Linux, iOS, watchOS, macOS, MinGW) ve Web (JavaScript, WasmJS). (/Idcf26)

Sürüm 1.3.1

16 Temmuz 2025

androidx.savedstate:savedstate-*:1.3.1 iptal edilir. 1.3.1 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • Açıklamalar tarafından desteklenen tüm KMP hedeflerini SavedState yapıtlarına ekleyin.
  • SavedState yapay ürünlerine yeni Kotlin Multiplatform (KMP) hedefleri eklendi. SavedState artık toplamda şu platformları destekliyor: JVM (Android ve Masaüstü), Native (Linux, iOS, watchOS, macOS, MinGW) ve Web (JavaScript, WasmJS). Compose 1.9'un kararlı sürümünün yayınlanmasına bağlı olduğundan, *-compose yapıtlarına yeni KMP hedefleri eklenmediğini unutmayın. (I062f4).

Sürüm 1.3.0

7 Mayıs 2025

androidx.savedstate:savedstate-*:1.3.0 iptal edilir. 1.3.0 sürümü bu commit'leri içerir.

1.2.0 sürümünden beri yapılan önemli değişiklikler

  • LocalSavedStateRegistryOwner, Compose tabanlı yardımcı API'lerinin Compose kullanıcı arayüzü dışında kullanılabilmesi için Compose kullanıcı arayüzünden yeni savedstate-compose modülüne taşındı. Bu işlev, Compose UI 1.9.0-alpha02 ve sonraki sürümler kullanılırken her zaman kullanılmalıdır ancak Compose'un tüm sürümleriyle kullanılabilecek şekilde geriye dönük olarak uyumludur.
  • savedstate-ktx Kotlin uzantıları artık temel savedstate modülüne taşındı.
  • SavedStateRegistryOwner aracılığıyla alınan findViewTreeSavedStateRegistryOwner örnekleri artık bir görünümün ayrık üstleri (ör. ViewOverlay) üzerinden çözümlenebilir. Ayrık görünüm üst öğeleri hakkında daha fazla bilgi için temel sürüm notlarına veya ViewTree.setViewTreeDisjointParent bölümündeki belgelere bakın.

Kotlin Multiplatform

  • SavedState modülü artık KMP ile uyumlu. Desteklenen platformlar artık Android, iOS, Linux, Mac ve JVM masaüstü ortamlarını içeriyor.
  • KMP'de uygulama durumunu kaydetmek ve geri yüklemek için tutarlı bir yol sağlamak üzere SavedState opak türünü soyutlama olarak kullanıma sunuyoruz. Kaydedilecek durumu değiştirmek için SavedStateReader ve SavedStateWriter içerir. Android'de SavedState, Bundle için bir tür takma adıdır. Bu sayede ikili uyumluluk sağlanır ve mevcut API'lerin ortak bir kaynak kümesine taşınması kolaylaştırılır. Diğer platformlarda SavedState, Map<String, Any> örneğidir.

      // 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 Support

  • SavedState artık KotlinX Serialization desteği içeriyor. @Serializable ile açıklama eklenmiş bir sınıfı encodeToSavedState ve decodeFromSavedState yöntemlerini kullanarak SavedState sınıfına dönüştürebilirsiniz. Döndürülen SavedState, Android'de normal bir Bundle'dir ve Bundle kabul eden tüm API'ler tarafından kullanılabilir.

    @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)
    }
    
  • Çoğu tür (ör. temel türler) herhangi bir yapılandırma gerektirmeden doğrudan desteklenirken @Serializable(with = ___:class) ile kullanılabilecek ek serileştiriciler savedstate modülündeki androidx.savedstate.serialization.serializers paketinde ve savedstate-compose modülündeki androidx.savedstate.compose.serialization.serializers paketinde bulunabilir.

  • Ayrıca, @Serializable sınıflarını SavedStateRegistryOwner içinde (ör. ComponentActivity, Fragment vb.) kolayca depolamak ve bu sınıfların işlem sonlandırılıp yeniden oluşturulduğunda otomatik olarak geri yüklenmesini sağlamak için saved adlı tembel özellik temsilcisini de ekledik. saved temsilcisinin tembel olduğunu ve erişilene kadar init lambda'sını çağırmayacağını veya SavedStateRegistry içine hiçbir şey kaydetmeyeceğini lütfen unutmayın.

    @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")
        }
    }
    
  • Lifecycle 2.9.0 içinde SavedStateHandle için benzer bir saved mülk temsilcisi eklenmiştir.

Sürüm 1.3.0-rc01

23 Nisan 2025

androidx.savedstate:savedstate-*:1.3.0-rc01 iptal edilir. 1.3.0-rc01 sürümü bu commit'leri içerir.

Sürüm 1.3.0-beta01

9 Nisan 2025

androidx.savedstate:savedstate-*:1.3.0-beta01 iptal edilir. 1.3.0-beta01 sürümü bu commit'leri içerir.

Bağımlılık Güncellemeleri (Dependency Updates)

  • Bu kitaplık artık Kotlin 2.0 dil düzeyini hedefliyor ve KGP 2.0.0 veya daha yeni bir sürüm gerektiriyor. (Idb6b5)

Sürüm 1.3.0-alpha11

26 Mart 2025

androidx.savedstate:savedstate-*:1.3.0-alpha11, önemli bir herkese açık değişiklik olmadan yayınlandı. 1.3.0-alpha11 sürümü bu commit'leri içerir.

Sürüm 1.3.0-alpha10

12 Mart 2025

androidx.savedstate:savedstate-*:1.3.0-alpha10 iptal edilir. 1.3.0-alpha10 sürümü bu commit'leri içerir.

Yeni Özellikler

  • SavedStateReader'deki get koleksiyonları için somutlaştırılmamış yöntem varyantları ekleyin. (I0b641, b/399820614)
  • encodeDefaults özelliğine SavedStateConfiguration eklenerek varsayılan değerlere sahip özelliklerin kodlanıp kodlanmayacağının özelleştirilmesine olanak tanındı. (I893cc, b/395104517)
  • SnapshotStateMapSerializer öğesini ekleyerek mutableStateMapOf'i destekleyin. (Ie6f19, b/378895074)
  • SnapshotStateListSerializer öğesini ekleyerek mutableStateListOf'i destekleyin. (I4d888, b/378895074)
  • getOrNull varyantları için SavedStateReader.get alternatif yöntemleri ekleyin. Bu yöntemler, temel değerleri otomatik olarak kutular. (I6228c, b/399820614)

API Değişiklikleri

  • getOrElse, getOrNull() ?: else() lehine SavedStateReader hesabından kaldırıldı. (I87317, b/399820614)
  • inline değiştiricisini SavedStateReader ve SavedStateWriter yöntemlerinden kaldırın. (If2a02, b/399820614)
  • Yerleşik Android'e özgü List ve Array serileştiricileri herkese açık API'den kaldırma (Ida293)
  • SparseParcelableArraySerializer yerine SparseArraySerializer koyun (I91de8)
  • Değer türü, dönüş türüyle eşleşmediğinde hata vererek tüm SavedStateReader.get'ların tutarlı şekilde davranmasını sağlayın (I78c4a, b/399317598)
  • SavedState*Delegates filtresini SavedState*Delegate olarak yeniden adlandırın. (I8589b, b/399629301)
  • SavedStateConfig filtresini SavedStateConfiguration olarak yeniden adlandırın. (I043a5, b/399629301)

Sürüm 1.3.0-alpha09

26 Şubat 2025

androidx.savedstate:savedstate-*:1.3.0-alpha09 iptal edilir. 1.3.0-alpha09 sürümü bu commit'leri içerir.

Yeni Özellikler

  • Yerleşik türler için geri dönüşüm ekleyin. Böylece, Bundle tarafından desteklenen tüm türler varsayılan olarak encodeAsSavedState/decodeFromSavedState ile veya @Serializable sınıflarındaki özellikler için @Contextual ek açıklaması aracılığıyla kullanılabilir. (Ic01d2)
  • SavedStateConfig'da classDiscriminator ve classDiscriminatorMode desteği ekleyin. (I69b66, b/395104517)

API Değişiklikleri

  • SavedStateConfig parametresini saved() temsilcilerine ekleyin (I39b3a)
  • Yerleşik serileştiricileri singleton nesneler yapar (Ifeee4)
  • SavedStateConfig özellikleri artık herkese açık olduğundan diğer modüller bu yapılandırmaları kullanabilir. (Ie5f49, b/378897438)
  • MutableStateFlowSerializer ve MutableStateSerializer için @Serializer(with = ...) desteği (I90953)
  • contentDeepToString öğesini SavedStateReader öğesine ekleme (I14d10)

Sürüm 1.3.0-alpha08

12 Şubat 2025

androidx.savedstate:savedstate-*:1.3.0-alpha08 iptal edilir. 1.3.0-alpha08 sürümü bu commit'leri içerir.

Yeni Özellikler

  • MutableStateSerializer öğesini lifecycle-viewmodel-compose konumundan savedstate-compose konumuna taşıyarak SavedState Serialization API'lerini Compose'un MutableState ile kullanmanıza olanak tanır. (I4f690, b/378895074)

API Değişiklikleri

  • Mevcut bir SavedState öğesinden SavedState oluşturmak için bir fabrika işlevi ekleyin. (I39f9a)
  • androidx.savedstate öğesine Array<SavedState> ve List<SavedState> desteği eklendi. (Idd8a5)
  • SavedState kodlama/kod çözme işlemine SavedStateConfig isteğe bağlı parametresini ekleyin (I6c4c0)

Sürüm 1.3.0-alpha07

29 Ocak 2025

androidx.savedstate:savedstate-*:1.3.0-alpha07 iptal edilir. 1.3.0-alpha07 sürümü bu commit'leri içerir.

Yeni Özellikler

  • kotlinx.coroutines.flow.MutableStateFlow öğesini serileştirmek için MutableStateFlowSerializer ekleyin. (I6a892, b/378895070)

API Değişiklikleri

  • Aşırı yüklenmiş SavedStateRegistryOwner.saved() temsilci işlevlerini varsayılan parametrelerle değiştirme (Icd1c1)
  • JavaSerializableSerializer ve ParcelableSerializer öğelerini soyut hale getirme (I268f6)
  • T : CharSequence genelini CharSequenceSerializer (Ib40bd) öğesinden kaldırma

Sürüm 1.3.0-alpha06

11 Aralık 2024

androidx.savedstate:savedstate-*:1.3.0-alpha06 iptal edilir. 1.3.0-alpha06 sürümü bu commit'leri içerir.

Yeni Özellikler

  • SavedState KMP artık şunları destekliyor: IBinder, Size, SizeF, Array<Parcelable>, SparseArray<Parcelable> ve Serializable (Android). (I1ba94, b/334076622)
  • Sınıfınızdaki ilgili alanı @Serializable(with = ParcelableSerializer::class) ile işaretleyerek Bundle tarafından desteklenen Java ve Android türlerini kodlamak/kod çözmek için kullanılabilecek KSerializer örnekleri ekleyin. (I8c10f, I28caf, b/376026712)
  • SavedStateRegistryOwner aracılığıyla alınan findViewTreeSavedStateRegistryOwner örnekleri artık bir görünümün ayrık üstleri (ör. ViewOverlay) üzerinden çözümlenebilir. Ayrık görünüm üst öğeleri hakkında daha fazla bilgi için Core'un sürüm notlarına veya ViewTree.setViewTreeDisjointParent bölümündeki dokümanlara bakın. (Iccb33)

API Değişiklikleri

  • SavedStateRegistryOwnerDelegate (I8c135, b/376026744) ile adlandırmaları ve paket düzenini daha tutarlı hale getirin.

Sürüm 1.3.0-alpha05

13 Kasım 2024

androidx.savedstate:savedstate-*:1.3.0-alpha05 iptal edilir. 1.3.0-alpha05 sürümü bu commit'leri içerir.

KotlinX Serialization Support

  • SavedState artık KotlinX Serialization desteği içeriyor. @Serializable ile açıklama eklenmiş bir sınıfı encodeToSavedState ve decodeFromSavedState yöntemlerini kullanarak SavedState sınıfına dönüştürebilirsiniz. Döndürülen SavedState, Android'de normal bir Bundle olup Bundle kabul eden tüm API'ler tarafından kullanılabilir. (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)
    }
    
  • Ayrıca, @Serializable sınıflarını SavedStateRegistryOwner içinde depolamayı (ör. ComponentActivity, Fragment vb.) ve bu sınıfların işlem sonlandırılıp yeniden oluşturulduğunda otomatik olarak geri yüklenmesini kolaylaştırmak için saved adlı bir tembel mülk temsilcisi de ekledik. saved temsilcisinin tembel olduğunu ve erişilene kadar init lambda'sını çağırmayacağını veya SavedStateRegistry içine hiçbir şey kaydetmeyeceğini lütfen unutmayın. (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")
        }
    }
    
  • Lifecycle 2.9.0-alpha07'da SavedStateHandle için benzer bir saved mülk temsilcisi eklenmiştir.

API Değişiklikleri

  • toMap öğesini SavedState öğesine ekleyerek herhangi bir SavedState öğesinin normal Map öğesine (sığ kopya) dönüştürülmesine izin verin. (I487b9, b/334076622)
  • SavedState KMP artık dizileri destekliyor. (Ic0552, b/334076622)

Sürüm 1.3.0-alpha04

30 Ekim 2024

androidx.savedstate:savedstate-*:1.3.0-alpha04 iptal edilir. 1.3.0-alpha04 sürümü bu commit'leri içerir.

API Değişiklikleri

  • SavedState KMP artık Char'ı destekliyor. (I9ac2f, b/334076622)
  • Kaydedilmiş Durum KMP'ye putNull ve isNull ekleyin. (Iea71d, b/334076622)
  • Ek savedState fabrika parametreleri ekleyin. Bu parametreler, Map<String, Any> (I9b37d, b/334076622) ile başlayan bir değer destekler.
  • SavedState KMP artık contentDeepEquals karşılaştırmasını destekliyor. (Ia515c, b/334076622)
  • SavedState KMP artık Long'u destekliyor. (I4c180, b/334076622)

Sürüm 1.3.0-alpha03

16 Ekim 2024

androidx.savedstate:savedstate-*:1.3.0-alpha03, önemli bir değişiklik olmadan yayınlanır. 1.3.0-alpha03 sürümü bu commit'leri içerir.

Sürüm 1.3.0-alpha02

2 Ekim 2024

androidx.savedstate:savedstate-*:1.3.0-alpha02 iptal edilir. 1.3.0-alpha02 sürümü bu commit'leri içerir.

Kotlin Multiplatform

  • SavedState modülü artık KMP ile uyumlu. Desteklenen platformlar artık Android, iOS, Linux, Mac ve JVM masaüstü ortamlarını içeriyor. (I26305, b/334076622)

Yeni Özellikler

  • KMP'de uygulama durumunu kaydetmek ve geri yüklemek için tutarlı bir yol sağlamak üzere SavedState opak türünü soyutlama olarak kullanıma sunuyoruz. Kaydedilecek durumu değiştirmek için SavedStateReader ve SavedStateWriter içerir. Android'de SavedState, Bundle için bir tür takma adıdır. Bu sayede ikili uyumluluk sağlanır ve mevcut API'lerin ortak bir kaynak kümesine taşınması kolaylaştırılır. Diğer platformlarda SavedState, Map<String, Any> örneğidir. (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 Değişiklikleri

  • SavedStateRegistry ve SavedStateRegistryController artık KMP ile uyumlu. (Id7bb8, b/334076622)
  • SavedState, SavedStateWriter ve SavedStateReader artık KMP ile uyumlu. (I26305, b/334076622)

Sürüm 1.3.0-alpha01

7 Ağustos 2024

androidx.savedstate:savedstate:1.3.0-alpha01 ve androidx.savedstate:savedstate-ktx:1.3.0-alpha01 yayınlandı. 1.3.0-alpha01 sürümü bu commit'leri içerir.

API Değişiklikleri

  • savedstate-ktx Kotlin uzantıları artık temel savedstate modülüne taşındı. (I1cc18, b/274803094)

Not

  • compileSdk sürümünü 35'e (5dc41be) güncelleme

Sürüm 1.2.1

Sürüm 1.2.1

22 Mart 2023

androidx.savedstate:savedstate:1.2.1 ve androidx.savedstate:savedstate-ktx:1.2.1 yayınlandı. 1.2.1 sürümü şu commit'leri içerir.

Bağımlılık Güncellemeleri (Dependency Updates)

Sürüm 1.2.0

Sürüm 1.2.0

29 Haziran 2022

androidx.savedstate:savedstate:1.2.0 ve androidx.savedstate:savedstate-ktx:1.2.0 yayınlandı. 1.2.0 sürümü şu commit'leri içerir.

1.1.0 sürümünden beri yapılan önemli değişiklikler

  • SavedStateRegistryController artık performAttach() üzerinden SavedStateRegistry'nin erken eklenmesine izin veriyor.
  • Artık daha önce kaydedilmiş bir SavedStateProvider öğesini getSavedStateProvider() aracılığıyla SavedStateRegistry cihazından alabilirsiniz.
  • SavedState kitaplığı Kotlin ile yeniden yazıldı.
    • SavedStateRegistryOwner için bu, Kotlin ile yazılmış sınıflarda kaynakla uyumsuz bir değişikliktir. Artık önceki getSavedStateRegistry() işlevini uygulamak yerine savedStateRegistry özelliğini geçersiz kılmanız gerekir.
    • ViewTreeSavedStateRegistryOwner için bu, Kotlin'de yazılan sınıflar için kaynakla uyumsuz bir değişikliktir. Daha önce ayarlanmış bir sahibi ayarlamak ve bulmak için artık androidx.savedstate.setViewTreeSavedStateRegistryOwner ve androidx.savedstate.findViewTreeSavedStateRegistryOwner öğesinin View üzerinde Kotlin uzantı yöntemlerini doğrudan içe aktarıp kullanmanız gerekir. Bu API, findViewTreeSavedStateRegistryOwner'nin savedstate-ktx API'sinin yerini almıştır.

Davranış Değişiklikleri

  • SavedStateRegistry Kaydedilecek durum yoksa artık boş paket kaydetmiyor.

Sürüm 1.2.0-rc01

11 Mayıs 2022

androidx.savedstate:savedstate:1.2.0-rc01 ve androidx.savedstate:savedstate-ktx:1.2.0-rc01 yayınlandı. 1.2.0-rc01 sürümü şu commit'leri içerir.

Belgelerdeki Değişiklikler

  • SavedStateRegistryOwner Kdocs, arayüzün nasıl uygulanması gerektiği veya SavedStateRegistryController üzerindeki yöntemlerin ne zaman çağrılması gerektiği konusunda sahibin sorumluluklarını ve sözleşmesini netleştirecek şekilde güncellendi. (Iefc95, b/228887344)

Sürüm 1.2.0-beta01

20 Nisan 2022

androidx.savedstate:savedstate:1.2.0-beta01 ve androidx.savedstate:savedstate-ktx:1.2.0-beta01 yayınlandı. 1.2.0-beta01 sürümü şu commit'leri içerir.

API Değişiklikleri

  • SavedStateRegistry ve ViewTreeSavedStateRegistryOwner sınıfları Kotlin'de yeniden yazıldı. ViewTreeSavedStateRegistryOwner için bu, Kotlin'de yazılan sınıflar için kaynakla uyumsuz bir değişikliktir. Daha önce ayarlanmış bir sahibi ayarlamak ve bulmak için artık androidx.savedstate.setViewTreeSavedStateRegistryOwner ve androidx.savedstate.findViewTreeSavedStateRegistryOwner öğesinin View üzerinde Kotlin uzantı yöntemlerini doğrudan içe aktarıp kullanmanız gerekir. Bu API, findViewTreeSavedStateRegistryOwner'nin savedstate-ktx API'sinin yerini almıştır. Bu, ikili uyumludur ve Java programlama dilinde yazılan uygulamalar için kaynak uyumluluğunu korur. (b/220191285)

Sürüm 1.2.0-alpha02

6 Nisan 2022

androidx.savedstate:savedstate:1.2.0-alpha02 ve androidx.savedstate:savedstate-ktx:1.2.0-alpha02 yayınlandı. 1.2.0-alpha02 sürümü şu commit'leri içerir.

Yeni Özellikler

  • Artık daha önce kaydedilmiş bir SavedStateProvider öğesini getSavedStateProvider() üzerinden SavedStateRegistry cihazından alabilirsiniz. (I7ea47, b/215406268)

API Değişiklikleri

  • SavedStateRegistryOwner, SavedStateRegistryController ve Recreator sınıfları Kotlin'de yeniden yazıldı. SavedStateRegistryOwner için bu, Kotlin ile yazılmış sınıflarda kaynakla uyumlu olmayan bir değişikliktir. Artık önceki getSavedStateRegistry() işlevini uygulamak yerine savedStateRegistry özelliğini geçersiz kılmanız gerekir. Bu, Java programlama dilinde yazılan uygulamalar için ikili ve kaynak uyumludur. (b/220191285)

Sürüm 1.2.0-alpha01

26 Ocak 2022

androidx.savedstate:savedstate:1.2.0-alpha01 ve androidx.savedstate:savedstate-ktx:1.2.0-alpha01 yayınlandı. 1.2.0-alpha01 sürümü şu commit'leri içerir.

Yeni Özellikler

  • SavedStateRegistryController artık performAttach() üzerinden SavedStateRegistry cihazının erken bağlanmasına izin veriyor. (Ice4bf)

Davranış Değişiklikleri

Sürüm 1.1.0

Sürüm 1.1.0

10 Şubat 2021

androidx.savedstate:savedstate:1.1.0 ve androidx.savedstate:savedstate-ktx:1.1.0 yayınlandı. 1.1.0 sürümü şu commit'leri içerir.

1.0.0 sürümünden beri yapılan önemli değişiklikler

  • ViewTreeSavedStateRegistryOwner API'si: Yeni ViewTreeSavedStateRegistryOwner.get(View) API'si, View örneği verildiğinde kapsayan SavedStateRegistry öğesini almanıza olanak tanır. Bunu doğru şekilde doldurmak için Activity 1.2.0, Fragment 1.3.0 ve AppCompat 1.3.0-alpha01 veya sonraki sürümlere yükseltmeniz gerekir.
  • savedstate-ktx artifact: savedstate-ktx artifact'i, ViewTreeSavedStateRegistryOwner ile çalışmak için findViewTreeSavedStateRegistryOwner() Kotlin uzantısıyla birlikte ekledik.

Sürüm 1.1.0-rc01

16 Aralık 2020

androidx.savedstate:savedstate:1.1.0-rc01 ve androidx.savedstate:savedstate-ktx:1.1.0-rc01, 1.1.0-beta01 tarihinden beri herhangi bir değişiklik yapılmadan yayınlanıyor. 1.1.0-rc01 sürümü şu commit'leri içerir.

Sürüm 1.1.0-beta01

1 Ekim 2020

androidx.savedstate:savedstate:1.1.0-beta01 ve androidx.savedstate:savedstate-ktx:1.1.0-beta01, 1.1.0-alpha01 tarihinden beri herhangi bir değişiklik yapılmadan yayınlanıyor. 1.1.0-beta01 sürümü şu commit'leri içerir.

Sürüm 1.1.0-alpha01

20 Mayıs 2020

androidx.savedstate:savedstate:1.1.0-alpha01 ve androidx.savedstate:savedstate-ktx:1.1.0-alpha01 yayınlandı. 1.1.0-alpha01 sürümü şu commit'leri içerir.

Yeni Özellikler

  • Yeni bir ViewTreeSavedStateRegistryOwner.get(View) API, View örneği verildiğinde kapsayan SavedStateRegistry öğesini almanıza olanak tanır. Bunu doğru şekilde doldurmak için Activity 1.2.0-alpha05, Fragment 1.3.0-alpha05 ve AppCompat 1.3.0-alpha01'e yükseltmeniz gerekir. (aosp/1298679)
  • savedstate-ktx adlı yeni yapay nesne, ViewTreeSavedStateRegistryOwner ile çalışmak için findViewTreeSavedStateRegistryOwner() Kotlin uzantısıyla birlikte eklendi. (aosp/1299434)

Sürüm 1.0.0

Sürüm 1.0.0

5 Eylül 2019

androidx.savedstate:savedstate:1.0.0 iptal edilir. Bu sürüme dahil edilen commit'leri burada bulabilirsiniz.

SavedState 1.0.0'ın temel özellikleri

androidx.savedstate kararlı sürüme yükseltildi. Bu, geliştiricilerin bileşenleri geri yükleme / saveInstanceState işlemine bağlamasına olanak tanıyan bir API kümesidir. API'nin ana giriş noktası SavedStateRegistry'dır. Bu nokta, consumeRestoredStateForKey kullanarak daha önce kaydedilmiş durumları almanın ve sistem istediğinde kaydedilmiş bir durum sağlamak için registerSavedStateProvider'ye geri çağırma kaydetmenin bir yolunu sunar.

Sürüm 1.0.0-rc01

2 Temmuz 2019

androidx.savedstate:savedstate:1.0.0-rc01 iptal edilir. Bu sürüme dahil edilen commit'leri burada bulabilirsiniz.

Hata düzeltmeleri

Sürüm 1.0.0-beta01

7 Mayıs 2019

androidx.savedstate:savedstate:1.0.0-beta01 iptal edilir. Bu sürüme dahil edilen commit'leri burada bulabilirsiniz.

Sürüm 1.0.0-alpha02

13 Mart 2019

androidx.savedstate:savedstate:1.0.0-alpha02 iptal edilir. androidx.savedstate:savedstate, savedstate altyapısını basitleştirmek ve SavedStateRegistry'den jenerikleri kaldırmak için androidx.savedstate:savedstate-bundle ve androidx.savedstate:savedstate-common yapılarını tek bir yapıda birleştirir. Bu nedenle, ayrı modüllere gerek yoktur.

Bu sürüme dahil edilen tüm commit'lerin listesini burada bulabilirsiniz.

Yeni özellikler

  • SavedStateRegistry.runOnNextRecreaction(Class<? extends AutoRecreated> clazz ) eklendi. Sahip bileşen yeniden başlatıldığında belirtilen sınıf oluşturulur ve AutoRecreated.onRecreated yöntemi çalıştırılır.

API değişiklikleri

  • Jenerik ilaçlar SavedStateRegistry<T> listesinden kaldırıldı
  • AbstractSavedStateRegistry ve BundlableSavedStateRegistry kaldırıldı. Bunun yerine basit SavedStateRegistry kullanın.
  • BundleSavedStateRegistryOwner, SavedStateRegistryOwner olarak yeniden adlandırıldı

Sürüm 1.0.0-alpha01

17 Aralık 2018

Bu, SavedState'ın ilk sürümüdür.

Yeni özellikler

androidx.savedstate, geliştiricilerin bileşenleri geri yükleme / saveInstanceState işlemine bağlamasına olanak tanıyan yeni bir alfa API'leri grubudur. API'nin ana giriş noktası SavedStateRegistry<T>'dır. Bu nokta, consumeRestoredStateForKey aracılığıyla daha önce kaydedilmiş durumu almanın ve sistem istediğinde kaydedilmiş durumu sağlamak için registerSavedStateProvider'ye geri çağırma kaydetmenin bir yolunu sunar.