Savedstate
| Son Güncelleme | Kararlı Sürüm | Sürüm Adayı | Beta sürümü | Alfa Sürümü |
|---|---|---|---|---|
| 9 Eylül 2026 | 1.5.0 | - | - | 1.6.0-alpha03 |
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 okuyun.
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.
Daha fazla bilgi için Sorun İzleyici belgelerini inceleyin.
Sürüm 1.6
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
SavedStateRegistryoluş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
SavedStateRegistrysınıfına herkese açık oluşturucular eklendi veSavedStateRegistrysınıfınınSavedStateProviderveSavedStateRestorersınıflarını uygulaması sağlandı. (I3c696)- En üst düzey
SavedStateProviderarayüzü eklendi. (I20f9d) restoreState(savedState: SavedState?)ile üst düzeySavedStateRestorerarayüzü eklendi ve yayınlanmamışSavedStateRegistry.SavedStateConsumerkaldırıldı. (Idc01d)AutoRecreatedverunOnNextRecreationdesteği sonlandırıldı. Bunun yerineSavedStateProviderveSavedStateRestorerkullanılabilir. (Iadc00)SavedStateRegistryüzerindeSavedStateConsumerarayü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 sürümler 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:
SavedStatenesneleri 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 depolayıp almayı sağlamak, SavedState API'leriyle entegrasyonu kolaylaştırmak için
SavedStateWriterveSavedStateReader'yeputKotlinSerializablevegetKotlinSerializableuzantı işlevlerini ekleyin. (Iba02e) - Özel sahip bileşenleri oluştururken standart kodları azaltmak için
LifecycleOwner,ViewModelStoreOwnerveSavedStateRegistryOwneriçin fabrika işlevleri ekleyin. (I9682c) SnapshotStateSet(mutableStateSetOf()üzerinden oluşturulmuş) öğelerinirememberSerializableile kaydetme ve geri yükleme özelliğini etkinleştirin. Artık özel bir tasarruf aracı gerektirmedenrememberSerializableiçindeSnapshotStateSetkullanabilirsiniz. (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
SavedStatenesneleri 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
- Anahtarları kullanarak Kotlin Serializable nesnelerini doğrudan depolayıp almayı sağlayan,
SavedStateAPI'leriyle entegrasyonu kolaylaştıranputKotlinSerializablevegetKotlinSerializableuzantı işlevleriniSavedStateWriterveSavedStateReader'ye ekleyin. (Iba02e) - Özel sahip bileşenleri oluştururken standart kodları azaltmak için
LifecycleOwner,ViewModelStoreOwnerveSavedStateRegistryOwneriçin fabrika işlevleri ekleyin. (I9682c) SnapshotStateSet(mutableStateSetOf()üzerinden oluşturulmuş) öğelerinirememberSerializableile kaydetme ve geri yükleme özelliğini etkinleştirin. Artık özel bir tasarruf aracı gerektirmedenrememberSerializableiçindeSnapshotStateSetkullanabilirsiniz. (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
encodeToSavedStatevedecodeFromSavedState'da null değer atanabilir türler için destek ekleyin. (I79062, b/439527454)- Compose'u 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ü şu commit'leri içerir.
API Değişiklikleri
SavedStateRegistryOwner.saved'da boş değer atanabilir türler için yerel destek eklenerek boş 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
SavedStateKMP 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
*-composeyapay ü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
SavedStateyapıtlarına ekleyin. SavedStateyapay ürünlerine yeni Kotlin Multiplatform (KMP) hedefleri eklendi.SavedStateartı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üne bağlı olduğundan*-composeyapı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 yenisavedstate-composemodülüne taşındı. Bu işlev, Compose UI1.9.0-alpha02ve sonraki sürümler kullanılırken her zaman kullanılmalıdır ancak geriye dönük uyumluluğu sayesinde Compose'un tüm sürümleriyle kullanılabilir.savedstate-ktxKotlin uzantıları artık temel savedstate modülüne taşındı.SavedStateRegistryOwnerfindViewTreeSavedStateRegistryOwneraracılığıyla alınan örnekler artık bir görünümün bağlantısız ü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 veyaViewTree.setViewTreeDisjointParentbölümündeki dokümanlara bakın.
Kotlin Multiplatform
SavedStatemodü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
SavedStateopak türünü soyutlama olarak kullanıma sunuyoruz. Kaydedilecek durumu değiştirmek içinSavedStateReaderveSavedStateWriteriçerir. Android'deSavedState,Bundleiç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 platformlardaSavedState,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
SavedStateartık KotlinX Serialization desteği içeriyor.@Serializableile açıklama eklenmiş bir sınıfıencodeToSavedStatevedecodeFromSavedStateyöntemlerini kullanarakSavedState'e dönüştürebilirsiniz. DöndürülenSavedState, Android'de normal birBundle'dir veBundlekabul 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ştiricilersavedstatemodülündekiandroidx.savedstate.serialization.serializerspaketinde vesavedstate-composemodülündekiandroidx.savedstate.compose.serialization.serializerspaketinde bulunabilir.Ayrıca,
@SerializablesınıflarınıSavedStateRegistryOwneriçinde (ör.ComponentActivity,Fragmentvb.) 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çinsavedadlı tembel özellik temsilcisini de ekledik.savedtemsilcisinin tembel olduğunu ve erişilene kadarinitlambda'sını çağırmayacağını veyaSavedStateRegistryiçine herhangi 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") } }Yaşam Döngüsü
2.9.0'ndeSavedStateHandleiçin benzer birsavedmü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
- Bu kitaplık artık Kotlin 2.0 dil seviyesini 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ınlanır. 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'dekigetkoleksiyonları için somutlaştırılmamış yöntem varyantları ekleyin. (I0b641, b/399820614)encodeDefaultsözelliğineSavedStateConfigurationekleyin. Bu sayede, varsayılan değerlere sahip özelliklerin kodlanıp kodlanmayacağını özelleştirebilirsiniz. (I893cc, b/395104517)mutableStateMapOf'ı desteklemek içinSnapshotStateMapSerializerekleyin. (Ie6f19, b/378895074)mutableStateListOf'ı desteklemek içinSnapshotStateListSerializerekleyin. (I4d888, b/378895074)SavedStateReader.getvaryantları içingetOrNullalternatif yöntem ekleyin. Bu yöntemler, temel değerleri otomatik olarak kutular. (I6228c, b/399820614)
API Değişiklikleri
getOrElse,getOrNull() ?: else()lehineSavedStateReaderhesabından kaldırıldı. (I87317, b/399820614)inlinedeğiştiricisiniSavedStateReaderveSavedStateWriteryö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)
SparseParcelableArraySerializeryerineSparseArraySerializerkoyun (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öğesiniSavedState*Delegateolarak yeniden adlandırın. (I8589b, b/399629301)SavedStateConfigöğesiniSavedStateConfigurationolarak 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 yedek ekleyin. Böylece,
Bundletarafından desteklenen tüm türler varsayılan olarakencodeAsSavedState/decodeFromSavedStateile veya@Serializablesınıflarındaki özellikler için@Contextualek açıklaması aracılığıyla kullanılabilir. (Ic01d2) SavedStateConfig'daclassDiscriminatorveclassDiscriminatorModedesteği ekleyin. (I69b66, b/395104517)
API Değişiklikleri
SavedStateConfigparametresinisaved()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)MutableStateFlowSerializerveMutableStateSerializeriçin@Serializer(with = ...)desteği (I90953)contentDeepToStringöğesiniSavedStateReader'ye 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,lifecycle-viewmodel-compose'densavedstate-compose'ye taşındı. Böylece, SavedState Serialization API'lerini Compose'unMutableStateile kullanabilirsiniz. (I4f690, b/378895074)
API Değişiklikleri
- Mevcut bir
SavedStateöğesindenSavedStateoluşturmak için bir fabrika işlevi ekleyin. (I39f9a) androidx.savedstate'daArray<SavedState>veList<SavedState>desteği eklendi. (Idd8a5)- SavedState kodlama/kod çözme işlemine
SavedStateConfigisteğ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çinMutableStateFlowSerializerekleyin. (I6a892, b/378895070)
API Değişiklikleri
- Aşırı yüklenmiş
SavedStateRegistryOwner.saved()temsilci işlevlerini varsayılan parametrelerle değiştirme (Icd1c1) JavaSerializableSerializerveParcelableSerializeröğelerini soyut yapma (I268f6)- Genel
T : CharSequenceöğesiniCharSequenceSerializeröğesinden kaldırma (Ib40bd)
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
SavedStateKMP 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ılabilecekKSerializerörnekleri ekleyin. (I8c10f, I28caf, b/376026712) SavedStateRegistryOwnerfindViewTreeSavedStateRegistryOwneraracılığıyla alınan örnekler artık bir görünümün bağlantısız ü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 veyaViewTree.setViewTreeDisjointParentbölümündeki dokümanlara bakın. (Iccb33)
API Değişiklikleri
- Adlandırmaları ve paket düzenini
SavedStateRegistryOwnerDelegateile daha tutarlı hale getirin (I8c135, b/376026744)
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
SavedStateartık KotlinX Serialization desteği içeriyor.@Serializableile açıklama eklenmiş bir sınıfıencodeToSavedStatevedecodeFromSavedStateyöntemlerini kullanarakSavedState'e dönüştürebilirsiniz. DöndürülenSavedState, Android'de normal birBundle'dir veBundlekabul 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,
@SerializablesınıflarınıSavedStateRegistryOwneriçinde (ör.ComponentActivity,Fragmentvb.) 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çinsavedadlı tembel özellik temsilcisini de ekledik.savedtemsilcisinin tembel olduğunu ve erişilene kadarinitlambda'sını çağırmayacağını veyaSavedStateRegistryiçine herhangi 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") } }Yaşam Döngüsü
2.9.0-alpha07'ndeSavedStateHandleiçin benzer birsavedmülk temsilcisi eklenmiştir.
API Değişiklikleri
toMapöğesiniSavedStateöğesine ekleyerek herhangi birSavedStateöğesinin normal birMapöğesine (sığ kopya) dönüştürülmesine izin verin. (I487b9, b/334076622)SavedStateKMP 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)
- SavedState KMP'ye
putNullveisNullekleyin. (Iea71d, b/334076622) - Ek
savedStatefabrika parametreleri ekleyinMap<String, Any>(I9b37d, b/334076622) - SavedState KMP artık
contentDeepEqualskarşı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 sürümünde önemli bir değişiklik yapılmadı. 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
SavedStatemodü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
SavedStateopak türünü soyutlama olarak kullanıma sunuyoruz. Kaydedilecek durumu değiştirmek içinSavedStateReaderveSavedStateWriteriçerir. Android'deSavedState,Bundleiç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 platformlardaSavedState,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
SavedStateRegistryveSavedStateRegistryControllerartık KMP ile uyumlu. (Id7bb8, b/334076622)SavedState,SavedStateWriterveSavedStateReaderartı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-ktxKotlin uzantıları artık temel savedstate modülüne taşındı. (I1cc18, b/274803094)
Not
compileSdk, 35 (5dc41be) olarak güncellendi
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
SavedStateartık Lifecycle2.6.1'a bağlıdır. (c1f621)
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
SavedStateRegistryControllerartıkperformAttach()üzerindenSavedStateRegistry'nin erken eklenmesine izin veriyor.- Artık daha önce kaydedilmiş bir
SavedStateProvideröğesinigetSavedStateProvider()üzerindenSavedStateRegistryöğesinden alabilirsiniz. SavedStatekitaplığı Kotlin'de yeniden yazıldı.SavedStateRegistryOwneriçin bu, Kotlin ile yazılmış sınıflarda kaynakla uyumlu olmayan bir değişikliktir. Artık öncekigetSavedStateRegistry()işlevini uygulamak yerinesavedStateRegistryözelliğini geçersiz kılmanız gerekir.ViewTreeSavedStateRegistryOwneriç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ıkandroidx.savedstate.setViewTreeSavedStateRegistryOwnerveandroidx.savedstate.findViewTreeSavedStateRegistryOwneröğesininViewüzerinde Kotlin uzantı yöntemlerini doğrudan içe aktarıp kullanmanız gerekir. Bu API,findViewTreeSavedStateRegistryOwner'ninsavedstate-ktxAPI'sinin yerini almıştır.
Davranış Değişiklikleri
- Kaydedilecek durum yoksa
SavedStateRegistryartı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
SavedStateRegistryOwnerKdocs, arayüzün nasıl uygulanması gerektiği veyaSavedStateRegistryControllerü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
SavedStateRegistryveViewTreeSavedStateRegistryOwnersınıfları Kotlin'de yeniden yazıldı.ViewTreeSavedStateRegistryOwneriç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ıkandroidx.savedstate.setViewTreeSavedStateRegistryOwnerveandroidx.savedstate.findViewTreeSavedStateRegistryOwneröğesininViewüzerinde Kotlin uzantı yöntemlerini doğrudan içe aktarıp kullanmanız gerekir. Bu API,findViewTreeSavedStateRegistryOwner'ninsavedstate-ktxAPI'sinin yerini almıştır. Bu, ikili uyumludur ve Java programlama dilinde yazılan uygulamalar için kaynak uyumlu olmaya devam eder. (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öğesinigetSavedStateProvider()üzerindenSavedStateRegistryöğesinden alabilirsiniz. (I7ea47, b/215406268)
API Değişiklikleri
SavedStateRegistryOwner,SavedStateRegistryControllerveRecreatorsınıfları Kotlin'de yeniden yazıldı.SavedStateRegistryOwneriçin bu, Kotlin ile yazılmış sınıflarda kaynakla uyumlu olmayan bir değişikliktir. Artık öncekigetSavedStateRegistry()işlevini uygulamak yerinesavedStateRegistryözelliğini geçersiz kılmanız gerekir. Bu, Java programlama dilinde yazılan 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ı. 1.2.0-alpha01 sürümü şu commit'leri içerir.
Yeni Özellikler
SavedStateRegistryControllerartıkperformAttach()üzerindenSavedStateRegistrycihazının erken takılmasına izin veriyor. (Ice4bf)
Davranış Değişiklikleri
- Kaydedilecek durum yoksa
SavedStateRegistryartık boş paket kaydetmiyor. (aosp/1896865, b/203457956)
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
ViewTreeSavedStateRegistryOwnerAPI'si: YeniViewTreeSavedStateRegistryOwner.get(View)API'si,Viewörneği verildiğinde kapsayanSavedStateRegistryöğesini almanıza olanak tanır. Bunu doğru şekilde doldurmak için Activity1.2.0, Fragment1.3.0ve AppCompat1.3.0-alpha01veya sonraki sürümlere yükseltmeniz gerekir.savedstate-ktxartifact:ViewTreeSavedStateRegistryOwnerile çalışmak içinfindViewTreeSavedStateRegistryOwner()Kotlin uzantısı içeren yenisavedstate-ktxartifact 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ı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
ViewTreeSavedStateRegistryOwner.get(View)API'si,Viewörneği verildiğinde kapsayanSavedStateRegistryöğesini almanıza olanak tanır. Bunu doğru şekilde doldurmak için Activity1.2.0-alpha05, Fragment1.3.0-alpha05ve AppCompat1.3.0-alpha01'e yükseltme yapmanız gerekir. (aosp/1298679) ViewTreeSavedStateRegistryOwnerile çalışmak içinfindViewTreeSavedStateRegistryOwner()Kotlin uzantısı içeren yenisavedstate-ktxyapısı 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 sürecine eklemelerine olanak tanıyan bir API setidir. 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
- Yanlış proguard kuralı düzeltildi (b/132655499)
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 genel türleri 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 veAutoRecreated.onRecreatedyöntemi çalıştırılır.
API değişiklikleri
- Jenerik ilaçlar
SavedStateRegistry<T>kapsamından kaldırıldı - AbstractSavedStateRegistry ve BundlableSavedStateRegistry kaldırıldı. Bunun yerine basit
SavedStateRegistrykullanın. BundleSavedStateRegistryOwner,SavedStateRegistryOwnerolarak 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, daha önce kaydedilmiş durumu consumeRestoredStateForKey aracılığıyla almanın ve sistem istediğinde kaydedilmiş durumu sağlamak için registerSavedStateProvider'ye geri çağırma kaydetmenin bir yolunu sunar.