Savedstate

Bir işlem sona erdiğinde kullanıcı arayüzü durumunu kaydeden ve işlem yeniden başlatıldığında durumu 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ü
30 Ekim 2024 1.2.1 - - 1.3.0-alpha04

Bağımlılıkları beyan etme

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

Uygulamanızın veya modülünüzün build.gradle dosyasına ihtiyacınız olan yapıların bağımlılıklarını ekleyin:

Groovy

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

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

Kotlin

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

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

Bağımlılıklar hakkında daha fazla bilgi edinmek için Derleme bağımlılıkları ekleme bölümüne bakın.

Geri bildirim

Geri bildiriminiz Jetpack'i iyileştirmemize yardımcı olacaktır. Yeni sorunlar keşfederseniz veya bu kitaplığı iyileştirmek için fikirleriniz varsa lütfen bize bildirin. Yeni bir kitaplık oluşturmadan önce lütfen bu kitaplıktaki mevcut sorunlara göz atın. Yıldız düğmesini tıklayarak mevcut bir soruna oy verebilirsiniz.

Yeni sorun oluşturma

Daha fazla bilgi için Sorun İzleyici belgelerine bakın.

Sürüm 1.3

Sürüm 1.3.0-alpha04

30 Ekim 2024

androidx.savedstate:savedstate-*:1.3.0-alpha04 yayınlandı. 1.3.0-alpha04 sürümü bu taahhütleri içerir.

API Değişiklikleri

Sürüm 1.3.0-alpha03

16 Ekim 2024

androidx.savedstate:savedstate-*:1.3.0-alpha03, önemli bir değişiklik içermeden yayınlandı. 1.3.0-alpha03 sürümü bu taahhütleri içerir.

Sürüm 1.3.0-alpha02

2 Ekim 2024

androidx.savedstate:savedstate-*:1.3.0-alpha02 yayınlandı. 1.3.0-alpha02 sürümü bu taahhütleri içerir.

Kotlin Çok Platformlu

  • SavedState modülü artık KMP ile uyumludur. Desteklenen platformlar arasında artık Android, iOS, Linux, Mac ve JVM masaüstü ortamları da yer alıyor. (I26305, b/334076622)

Yeni Özellikler

  • KMP'de uygulama durumunu kaydedip geri yüklemek için tutarlı bir yöntem sunmak amacıyla SavedState opak türünü soyutlama olarak kullanın. Kaydedilecek durumu değiştirmek için bir SavedStateReader ve SavedStateWriter içerir. SavedState, Android'de Bundle için bir tür takma addır. İkili program uyumluluğu sağlar ve mevcut API'lerin ortak kaynak kümesine taşınmasını kolaylaştırı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 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ı. Sürüm 1.3.0-alpha01 bu kaydetmeleri 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 değerini 35 olarak güncelleyin (5dc41be)

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 serbest bırakıldı. Sürüm 1.2.1 bu kaydetmeleri içerir.

Bağımlılık Güncellemeleri

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 serbest bırakıldı. 1.2.0 sürümü bu kaydetmeleri içerir.

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

  • SavedStateRegistryController artık SavedStateRegistry'u performAttach() üzerinden erken eklemeye izin veriyor.
  • Artık getSavedStateProvider() aracılığıyla daha önce kayıtlı bir SavedStateProvider'yi SavedStateRegistry'den alabilirsiniz.
  • SavedState kitaplığı Kotlin'de yeniden yazıldı.
    • SavedStateRegistryOwner için bu, Kotlin'de yazılmış sınıflar için kaynak uyumsuz bir değişikliktir. Artık önceki getSavedStateRegistry() işlevini uygulamak yerine savedStateRegistry mülkünü geçersiz kılmanız gerekir.
    • ViewTreeSavedStateRegistryOwner için bu, Kotlin'de yazılmış sınıflar için kaynak uyumsuz bir değişikliktir. Artık daha önce ayarlanmış bir sahibi ayarlamak ve bulmak için androidx.savedstate.setViewTreeSavedStateRegistryOwner ve androidx.savedstate.findViewTreeSavedStateRegistryOwner sınıflarının View bölümündeki Kotlin uzantı yöntemlerini doğrudan içe aktarıp kullanmanız gerekir. Bu API, findViewTreeSavedStateRegistryOwner'ın savedstate-ktx API'sinin yerini almıştır.

Davranış Değişiklikleri

  • Kaydedilecek durum yoksa SavedStateRegistry artık boş Paket kaydetmez.

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ü bu taahhütleri içerir.

Dokümanlardaki Değişiklikler

  • SavedStateRegistryOwner Kdocs, arayüz sahibinin arayüzü nasıl kullanması veya SavedStateRegistryController sitesindeki yöntemleri ne zaman çağırması gerektiği konusunda sahip olduğu sorumlulukları ve sözleşmeyi açıklığa kavuşturacak ş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 serbest bırakıldı. Sürüm 1.2.0-beta01 bu kaydetmeleri içerir.

API Değişiklikleri

  • SavedStateRegistry ve ViewTreeSavedStateRegistryOwner sınıfları Kotlin'de yeniden yazıldı. ViewTreeSavedStateRegistryOwner için bu, Kotlin'de yazılmış sınıflar için kaynak uyumsuz bir değişikliktir. Artık daha önce ayarlanmış bir sahibi ayarlamak ve bulmak için androidx.savedstate.setViewTreeSavedStateRegistryOwner ve androidx.savedstate.findViewTreeSavedStateRegistryOwner sınıflarının View bölümündeki Kotlin uzantı yöntemlerini doğrudan içe aktarıp kullanmanız gerekir. Bu API, findViewTreeSavedStateRegistryOwner'ın savedstate-ktx API'sinin yerini almıştır. Bu sürüm, Java programlama dilinde yazılmış uygulamalar için ikili uyumlu ve kaynak uyumludur. (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ü bu kaydetmeleri içerir.

Yeni Özellikler

  • Artık getSavedStateProvider() aracılığıyla daha önce kayıtlı bir SavedStateProvider'yi SavedStateRegistry'den 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'de yazılmış sınıflar için kaynak uyumsuz bir değişikliktir. Artık önceki getSavedStateRegistry() işlevini uygulamak yerine savedStateRegistry mülkünü geçersiz kılmanız gerekir. Bu, Java programlama dilinde yazılmış uygulamalar için ikili uyumlu 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ı. Sürüm 1.2.0-alpha01 bu kaydetmeleri içerir.

Yeni Özellikler

  • SavedStateRegistryController artık performAttach() üzerinden SavedStateRegistry öğesinin erken eklenmesine izin veriyor. (Ice4bf)

Davranış Değişiklikleri

Sürüm 1.1.0

1.1.0 sürümü

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ü bu taahhütleri içerir.

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

  • ViewTreeSavedStateRegistryOwner API: Yeni bir ViewTreeSavedStateRegistryOwner.get(View) API, bir View örneği verildiğinde kapsayıcı SavedStateRegistry öğesini almanıza olanak tanır. Bu alanı doğru şekilde doldurmak için Activity 1.2.0, Fragment 1.3.0 ve AppCompat 1.3.0-alpha01 veya sonraki bir sürüme yükseltmeniz gerekir.
  • savedstate-ktx yapı öğesi: Yeni savedstate-ktx yapı öğesi, ViewTreeSavedStateRegistryOwner ile çalışmak için bir findViewTreeSavedStateRegistryOwner() Kotlin uzantısıyla eklendi.

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ınlandı. 1.1.0-rc01 sürümü bu taahhütleri 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 bu yana hiçbir değişiklik yapılmadan yayınlandı. Sürüm 1.1.0-beta01 bu kaydetmeleri 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 serbest bırakıldı. 1.1.0-alpha01 sürümü bu taahhütleri içerir.

Yeni Özellikler

  • Yeni bir ViewTreeSavedStateRegistryOwner.get(View) API'sı, verilen View örneğini içeren SavedStateRegistry öğesini almanızı sağlar. Bu alanı doğru şekilde doldurmak için Etkinlik 1.2.0-alpha05, Fragment 1.3.0-alpha05 ve AppCompat 1.3.0-alpha01'e yükseltmeniz gerekir. (aosp/1298679)
  • Yeni savedstate-ktx yapı, ViewTreeSavedStateRegistryOwner ile çalışmak için bir findViewTreeSavedStateRegistryOwner() Kotlin uzantısıyla 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 yayınlanır. Bu sürüme dahil edilen taahhütleri burada bulabilirsiniz.

SavedState 1.0.0'ın önemli özellikleri

androidx.savedstate kararlı sürüme geçti. Bu, geliştiricilerin geri yükleme / saveInstanceState işlemine bileşen eklemesine olanak tanıyan bir dizi API'dir. API'nin ana giriş noktası SavedStateRegistry'dir. Bu API, consumeRestoredStateForKey kullanarak daha önce kaydedilen durumları geri almanın ve sistem istekte bulunduğunda kayıtlı durum sağlamak için registerSavedStateProvider öğesine geri arama kaydetmenin bir yolunu sunar.

Sürüm 1.0.0-rc01

2 Temmuz 2019

androidx.savedstate:savedstate:1.0.0-rc01 yayınlanır. Bu sürüme dahil edilen taahhütleri burada bulabilirsiniz.

Hata düzeltmeleri

Sürüm 1.0.0-beta01

7 Mayıs 2019

androidx.savedstate:savedstate:1.0.0-beta01 yayınlanır. Bu sürüme dahil edilen taahhütleri burada bulabilirsiniz.

Sürüm 1.0.0-alpha02

13 Mart 2019

androidx.savedstate:savedstate:1.0.0-alpha02 yayınlanır. androidx.savedstate:savedstate, savedstate altyapısını basitleştirmeye ve SavedStateRegistry'tan genel öğeleri kaldırmaya karar verildiği 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 taahhütlerin listesini burada bulabilirsiniz.

Yeni özellikler

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

API değişiklikleri

  • Jenerik ürünler SavedStateRegistry<T>'ten 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ü.

Yeni özellikler

androidx.savedstate, geliştiricilerin geri yükleme / saveInstanceState işlemine bileşen eklemelerine olanak tanıyan yeni bir alfa API'leri grubudur. API'nin ana giriş noktası SavedStateRegistry<T>'tür. Bu nokta, daha önce kaydedilen durumu consumeRestoredStateForKey aracılığıyla alma ve sistem isterse kaydedilen durumu sağlamak için registerSavedStateProvider'ye geri çağırma işlevi kaydetme olanağı sunar.