Yaşam döngüsü
Bu tabloda, androidx.lifecycle grubundaki tüm yapılar listelenir.
| Yapı | Kararlı sürüm | Sürüm Adayı | Beta Sürümü | Alfa sürümü | 
|---|---|---|---|---|
| lifecycle-* | 2.9.4 | - | 2.10.0-beta01 | - | 
| lifecycle-viewmodel-navigation3 | - | - | 2.10.0-beta01 | - | 
Bağımlılıkları bildirme
Lifecycle'a 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:
Kotlin
Groovy
dependencies { def lifecycle_version = "2.9.4" def arch_version = "2.2.0" // ViewModel implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycle_version" // ViewModel utilities for Compose implementation "androidx.lifecycle:lifecycle-viewmodel-compose:$lifecycle_version" // LiveData implementation "androidx.lifecycle:lifecycle-livedata-ktx:$lifecycle_version" // Lifecycles only (without ViewModel or LiveData) implementation "androidx.lifecycle:lifecycle-runtime-ktx:$lifecycle_version" // Lifecycle utilities for Compose implementation "androidx.lifecycle:lifecycle-runtime-compose:$lifecycle_version" // Saved state module for ViewModel implementation "androidx.lifecycle:lifecycle-viewmodel-savedstate:$lifecycle_version" // ViewModel integration with Navigation3 implementation "androidx.lifecycle:lifecycle-viewmodel-navigation3:2.10.0-beta01" // Annotation processor kapt "androidx.lifecycle:lifecycle-compiler:$lifecycle_version" // alternately - if using Java8, use the following instead of lifecycle-compiler implementation "androidx.lifecycle:lifecycle-common-java8:$lifecycle_version" // optional - helpers for implementing LifecycleOwner in a Service implementation "androidx.lifecycle:lifecycle-service:$lifecycle_version" // optional - ProcessLifecycleOwner provides a lifecycle for the whole application process implementation "androidx.lifecycle:lifecycle-process:$lifecycle_version" // optional - ReactiveStreams support for LiveData implementation "androidx.lifecycle:lifecycle-reactivestreams-ktx:$lifecycle_version" // optional - Test helpers for LiveData testImplementation "androidx.arch.core:core-testing:$arch_version" // optional - Test helpers for Lifecycle runtime testImplementation "androidx.lifecycle:lifecycle-runtime-testing:$lifecycle_version" }
Kotlin
dependencies { val lifecycle_version = "2.9.4" val arch_version = "2.2.0" // ViewModel implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycle_version") // ViewModel utilities for Compose implementation("androidx.lifecycle:lifecycle-viewmodel-compose:$lifecycle_version") // LiveData implementation("androidx.lifecycle:lifecycle-livedata-ktx:$lifecycle_version") // Lifecycles only (without ViewModel or LiveData) implementation("androidx.lifecycle:lifecycle-runtime-ktx:$lifecycle_version") // Lifecycle utilities for Compose implementation("androidx.lifecycle:lifecycle-runtime-compose:$lifecycle_version") // Saved state module for ViewModel implementation("androidx.lifecycle:lifecycle-viewmodel-savedstate:$lifecycle_version") // ViewModel integration with Navigation3 implementation("androidx.lifecycle:lifecycle-viewmodel-navigation3:2.10.0-beta01") // Annotation processor kapt("androidx.lifecycle:lifecycle-compiler:$lifecycle_version") // alternately - if using Java8, use the following instead of lifecycle-compiler implementation("androidx.lifecycle:lifecycle-common-java8:$lifecycle_version") // optional - helpers for implementing LifecycleOwner in a Service implementation("androidx.lifecycle:lifecycle-service:$lifecycle_version") // optional - ProcessLifecycleOwner provides a lifecycle for the whole application process implementation("androidx.lifecycle:lifecycle-process:$lifecycle_version") // optional - ReactiveStreams support for LiveData implementation("androidx.lifecycle:lifecycle-reactivestreams-ktx:$lifecycle_version") // optional - Test helpers for LiveData testImplementation("androidx.arch.core:core-testing:$arch_version") // optional - Test helpers for Lifecycle runtime testImplementation ("androidx.lifecycle:lifecycle-runtime-testing:$lifecycle_version") }
Java
Groovy
dependencies { def lifecycle_version = "2.9.4" def arch_version = "2.2.0" // ViewModel implementation "androidx.lifecycle:lifecycle-viewmodel:$lifecycle_version" // LiveData implementation "androidx.lifecycle:lifecycle-livedata:$lifecycle_version" // Lifecycles only (without ViewModel or LiveData) implementation "androidx.lifecycle:lifecycle-runtime:$lifecycle_version" // Saved state module for ViewModel implementation "androidx.lifecycle:lifecycle-viewmodel-savedstate:$lifecycle_version" // Annotation processor annotationProcessor "androidx.lifecycle:lifecycle-compiler:$lifecycle_version" // alternately - if using Java8, use the following instead of lifecycle-compiler implementation "androidx.lifecycle:lifecycle-common-java8:$lifecycle_version" // optional - helpers for implementing LifecycleOwner in a Service implementation "androidx.lifecycle:lifecycle-service:$lifecycle_version" // optional - ProcessLifecycleOwner provides a lifecycle for the whole application process implementation "androidx.lifecycle:lifecycle-process:$lifecycle_version" // optional - ReactiveStreams support for LiveData implementation "androidx.lifecycle:lifecycle-reactivestreams:$lifecycle_version" // optional - Test helpers for LiveData testImplementation "androidx.arch.core:core-testing:$arch_version" // optional - Test helpers for Lifecycle runtime testImplementation "androidx.lifecycle:lifecycle-runtime-testing:$lifecycle_version" }
Kotlin
dependencies { val lifecycle_version = "2.9.4" val arch_version = "2.2.0" // ViewModel implementation("androidx.lifecycle:lifecycle-viewmodel:$lifecycle_version") // LiveData implementation("androidx.lifecycle:lifecycle-livedata:$lifecycle_version") // Lifecycles only (without ViewModel or LiveData) implementation("androidx.lifecycle:lifecycle-runtime:$lifecycle_version") // Saved state module for ViewModel implementation("androidx.lifecycle:lifecycle-viewmodel-savedstate:$lifecycle_version") // Annotation processor annotationProcessor("androidx.lifecycle:lifecycle-compiler:$lifecycle_version") // alternately - if using Java8, use the following instead of lifecycle-compiler implementation("androidx.lifecycle:lifecycle-common-java8:$lifecycle_version") // optional - helpers for implementing LifecycleOwner in a Service implementation("androidx.lifecycle:lifecycle-service:$lifecycle_version") // optional - ProcessLifecycleOwner provides a lifecycle for the whole application process implementation("androidx.lifecycle:lifecycle-process:$lifecycle_version") // optional - ReactiveStreams support for LiveData implementation("androidx.lifecycle:lifecycle-reactivestreams:$lifecycle_version") // optional - Test helpers for LiveData testImplementation("androidx.arch.core:core-testing:$arch_version") // optional - Test helpers for Lifecycle runtime testImplementation("androidx.lifecycle:lifecycle-runtime-testing:$lifecycle_version") }
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 2.10
Sürüm 2.10.0-beta01
22 Ekim 2025
androidx.lifecycle:lifecycle-*:2.10.0-beta01 iptal edilir. 2.10.0-beta01 sürümü bu commit'leri içerir.
API Değişiklikleri
- ViewModelStoreNavEntryDecoratorDefault, "s" harfi eklenerek- ViewModelStoreNavEntryDecoratorDefaultsolarak yeniden adlandırıldı. (I6d27b, b/444447434)
Hata Düzeltmeleri
- rememberLifecycleOwner, sahibi- Lifeycle.State.CREATED'ye geçmeden önce- Lifecycle.Event.ON_DESTROYetkinliği alırsa artık kilitlenmiyor. (I6f98e, b/444594991)
Sürüm 2.10.0-alpha05
8 Ekim 2025
androidx.lifecycle:lifecycle-*:2.10.0-alpha05 iptal edilir. 2.10.0-alpha05 sürümü şu commit'leri içerir.
API Değişiklikleri
- removeViewModelStoreOnPopCallback()artık- ViewModelStoreNavEntryDecoratorDefaultnesnesinin bir parçasıdır. Diğer platformlar ve uygulamalar, varsayılanı buradan çağırabilir. (Ia1f23, b/444447434)
- ViewModelStoreNavEntryDecoratorişlevini,- NavEntryDecoratoriçin bir fabrika olarak işlevini daha iyi yansıtacak şekilde sınıfa dönüştürdü ve bu geri çağırmanın yalnızca- backStacköğesi çıkarıldığında çağrıldığını netleştirmek için dekoratörün- shouldRemoveViewModelStoreparametresini- removeViewModelStoreOnPopolarak yeniden adlandırdı. (Iefdc5, b/444447434)
Sürüm 2.10.0-alpha04
24 Eylül 2025
androidx.lifecycle:lifecycle-*:2.10.0-alpha04 iptal edilir. 2.10.0-alpha04 sürümü bu commit'leri içerir.
API Değişiklikleri
- LifecycleOwnercomposable'ını- rememberLifecycleOwnerolarak yeniden düzenleyin. İşlev artık doğrudan- LifecycleOwnerdeğerini döndürüyor. Bu sahibi bir alt bileşene sağlamak için- CompositionLocalProviderkullanın. (Ic57f0, b/444446629)
- JetBrains'in bu hedefleri dolduran ve böylece CMP'yi destekleyen çatallar sağlamasına olanak tanımak için lifecycle-viewmodel-navigation3'e KMP sapları ekleyin. (I44a4c)
Sürüm 2.10.0-alpha03
27 Ağustos 2025
androidx.lifecycle:lifecycle-*:2.10.0-alpha03 iptal edilir. 2.10.0-alpha03 sürümü şu commit'leri içerir.
API Değişiklikleri
- Compose'u 1.9.0 sürümüne güncelleyin. (I2b9de)
Sürüm 2.10.0-alpha02
13 Ağustos 2025
androidx.lifecycle:lifecycle-*:2.10.0-alpha02 iptal edilir. 2.10.0-alpha02 sürümü bu commit'leri içerir.
Yeni Özellikler
- LifecycleOwnercomposable'ı artık bağımsız bir kök yaşam döngüsü oluşturabilir.- parent = nullaçıkça ayarlandığında yeni yaşam döngüsü herhangi bir ana makineden (ör.- Activity,- Fragmentveya- NavBackStackEntry) bağımsız olarak çalışır. Birleştirilebilir öğe kompozisyona girer girmez başlar ve ayrıldığında otomatik olarak yok edilir. (I8dfbe, b/433659048)- @Composable fun IndependentComponent() { // Create a standalone lifecycle, not tied to the parent Activity/Fragment. LifecycleOwner(parent = null) { val rootLifecycle = LocalLifecycleOwner.current.lifecycle } }
API Değişiklikleri
- LifecycleOwnercomposable'ında- parentLifecycleOwnerparametresinin adı- parentolarak değiştirildi. (I080bc)
Hata Düzeltmeleri
- LifecycleOwnerartık elden çıkarıldığında yaşam döngüsünü doğru şekilde- DESTROYEDdurumuna taşıyor. Bu, yaşam döngüsüne referans veren harici kodun olası sızıntılarını önler. (I9e5b7, b/433659048)
- Varsayılan minSdk'nın API 21'den API 23'e taşınması (Ibdfca, b/380448311, b/435705964, b/435705223)
Harici Katkı (External Contribution)
- LifecycleOwneröğesinden gereksiz dahili destek alanlarını kaldırın. Katkısı için Jake Wharton'a teşekkür ederiz. (Ideddb)
Sürüm 2.10.0-alpha01
30 Temmuz 2025
androidx.lifecycle:lifecycle-*:2.10.0-alpha01 iptal edilir. 2.10.0-alpha01 sürümü bu commit'leri içerir.
Yeni Özellikler
- Doğrudan kullanıcı arayüzünde kapsamlı yaşam döngüleri oluşturmayı etkinleştirmek için - LifecycleOwnercomposable'ı ekleyin. Bu, kendi yaşam döngülerini bağımsız olarak yönetmesi gereken bileşenler için kullanışlıdır. Navigation3'ün bu yeni birleştirilebilir öğeyi nasıl entegre ettiğine dair bir örnek için aosp/3708610 adresini inceleyin. (76cbf7)- @Composable fun MyComposable() { LifecycleOwner( maxLifecycle = RESUMED, parentLifecycleOwner = LocalLifecycleOwner.current, ) { val childLifecycleOwner = LocalLifecycleOwner.current } }
API Değişiklikleri
- CreationExtrasiçin daha kullanışlı ve deyimsel bir Kotlin API sağlayan bir oluşturucu fabrika işlevi ekleyin. (Iab2bd)
- SavedStateHandle.savediçinde 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ı. (I54d69, b/421325690)
- SavedStateHandlemarkalarını- @VisibleForTestingolarak işaretleyin. (Iff0e0, b/408002794)
Sürüm 2.9
Sürüm 2.9.4
17 Eylül 2025
androidx.lifecycle:lifecycle-*:2.9.4 iptal edilir. 2.9.4 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
- Lifecycle KMP yapılarının bozulmasına neden olan, Compose Compiler eklentisinin uygulanmamasıyla ilgili hata düzeltildi. (Ie95bc, b/443096483, b/443965665)
Sürüm 2.9.3
27 Ağustos 2025
androidx.lifecycle:lifecycle-*:2.9.3 iptal edilir. 2.9.3 sürümü bu commit'leri içerir.
Yeni Özellikler
- Lifecycle *-composeyapay ürünlerine 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). (I0a0e4)
Hata Düzeltmeleri
- androidx.annotation'yı 1.9.1 sürümüne güncelleyin (Ic9e4f, b/397701294)
Sürüm 2.9.2
16 Temmuz 2025
androidx.lifecycle:lifecycle-*:2.9.2 iptal edilir. 2.9.2 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
- Lifecycle yapay ürünlerine yeni Kotlin Multiplatform (KMP) hedefleri eklendi. Lifecycle 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üne bağlı olduğundan, *-composeyapay nesnelerine yeni KMP hedefleri eklenmediğini unutmayın. (I01cb8).
Bağımlılık güncellemeleri
- Yaşam döngüsü, yeni KMP hedeflerinin (Ic9e4f, b/397701294) desteklenmesi için artık Annotation 1.9.1'a bağlıdır.
Sürüm 2.9.1
4 Haziran 2025
androidx.lifecycle:lifecycle-*:2.9.1 iptal edilir. 2.9.1 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
- SavedStateHandle.remove(key)'nın- SavedStateHandle.getMutableStateFlow(key)durumlarını temizlememesi sorununu düzeltin. (d5f939, b/418746333)
Sürüm 2.9.0
7 Mayıs 2025
androidx.lifecycle:lifecycle-*:2.9.0 iptal edilir. 2.9.0 sürümü bu commit'leri içerir.
2.8.0 sürümünden beri yapılan önemli değişiklikler
- androidx.lifecycle:lifecycle-viewmodel-testingKMP yapay nesnesi,- ViewModels'yi bağımsız olarak test etmek için- ViewModelScenariosınıfı sağlar. Ayrıca,- onClearedve- SavedStateHandledesteğinin yanı sıra- recreate()aracılığıyla test sürecinin sonlandırılması ve yeniden oluşturulması da desteklenir.
- MutableStateFlowdöndürmek için- SavedStateHandle'e- getMutableStateFlowekleyin. Bu yeni işlev yalnızca anahtarla kullanılabilir ve- getLiveDataile kullanılamaz. Aynı duruma erişmek için her ikisini de kullanmaya çalışırsanız bir istisna oluşturulur.
- CreationExtrasartık Kotlin'de içeriklerin deyimsel olarak işlenmesini sağlamak için harita benzeri operatör aşırı yüklemelerini içeriyor.- in,- +=ve- +özelliklerinin- CreationExtrasile birlikte kullanılmasına olanak tanır.
KotlinX Serialization Support
- SavedState - 1.3.0'e eklenen KotlinX Serialization desteğiyle birlikte,- @Serializablesınıflarını- SavedStateHandleiçinde kolayca depolamak ve bu sınıfların işlem sonlandırma ve yeniden oluşturma sırasında otomatik olarak geri yüklenmesini sağlamak için- savedadlı tembel özellik temsilcisini kullanıma sunduk.- savedtemsilcisinin tembel olduğunu ve erişilene kadar- initlambda'sını çağırmayacağını veya- SavedStateHandleiçine hiçbir şey kaydetmeyeceğini lütfen unutmayın.- @Serializable data class Person(val firstName: String, val lastName: String) class MyViewModel(handle: SavedStateHandle) : ViewModel() { var person by handle.saved { Person("John", "Doe") } fun onPersonChanged(person: Person) { this.person = person } }
Kotlin Multiplatform
- lifecycle-testingmodülü artık- TestLifecycleOwnergibi API'ler de dahil olmak üzere KMP ile uyumlu.
- lifecycle-viewmodel-savedstatemodülü artık- SavedStateHandlegibi API'ler de dahil olmak üzere KMP ile uyumlu.
- androidx.compose.ui.platform.LocalLifecycleOwnerartık ortak kaynak kümesinde kullanılabilir.
- NewInstanceFactoryartık JVM Desktop ve Android hedeflerinde kullanılabilir.
Davranış Değişiklikleri
- Lifecycle.DESTROYEDdurumu son durumdur ve artık- Lifecycleöğesini bu durumdan başka bir duruma taşımaya yönelik her girişim- IllegalStateExceptionile sonuçlanır.
- SavedStateHandleartık döndürülen- Bundle'nin boş olduğu- SavedStateProvider.saveState()'leri içermiyor.
Sürüm 2.9.0-rc01
23 Nisan 2025
androidx.lifecycle:lifecycle-*:2.9.0-rc01 iptal edilir. 2.9.0-rc01 sürümü bu commit'leri içerir.
Lint API Uyumluluğu Uyarısı
- JetBrains, KaCallableMemberCallöğesini bir sınıftan arayüze değiştirdi. Bu değişiklik, ikili uyumluluğu bozuyor. Projenizin AGP sürümü, lint kontrollerini derlemek için kullanılan sürümden farklıysa bu durum kilitlenmelere neden olabilir. Bu güncelleme aosp/3577172 içinde yapılmış ancak sürüm notlarında yer almamıştı. Bu nedenle, bu durumu burada açıklığa kavuşturuyoruz. Önerilen düzeltme: En son kararlı AGP'ye güncelleyin. Tamamen güncelleyemiyorsanız lint kontrollerini AGP sürümünüzle uyumlu hale getirmek içinandroid.experimental.lint.versionkullanın. Ayrıntılar için Compose çalışma zamanı davranış değişiklikleri başlıklı makaleyi inceleyin.
Sürüm 2.9.0-beta01
9 Nisan 2025
androidx.lifecycle:lifecycle-*:2.9.0-beta01 iptal edilir. 2.9.0-beta01 sürümü bu commit'leri içerir.
API Değişiklikleri
- Lifecycle ViewModel Composeartık Compose Runtime 1.7.1 ve sonraki sürümlerle aynı Kotlin Multiplatform kurulumunu kullanıyor.- -desktopyapıları kaldırıldı,- -jvmStubsve- -linuxx64Stubsyapıları eklendi. Bu hedeflerden hiçbiri kullanılmak üzere tasarlanmamıştır. Jetbrains Compose çalışmalarına yardımcı olmak için yer tutucu olarak kullanılırlar. (I5cb14, b/406592090)
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)
- Lifecycle ViewModel Composeartık Compose 1.7.8'e bağlıdır. (I5cb14, b/406592090)
Sürüm 2.9.0-alpha13
26 Mart 2025
androidx.lifecycle:lifecycle-*:2.9.0-alpha13, önemli bir herkese açık değişiklik olmadan yayınlandı. 2.9.0-alpha13 sürümü bu commit'leri içerir.
Sürüm 2.9.0-alpha12
12 Mart 2025
androidx.lifecycle:lifecycle-*:2.9.0-alpha12 iptal edilir. 2.9.0-alpha12 sürümü bu commit'leri içerir.
API Değişiklikleri
- Desteklenen tüm KMP platformlarında ViewModelProvider.getöğesine@MainThreadek açıklaması ekleyin. (I7e8dd, b/397736115)
- SavedState*Delegatesöğesini- SavedState*Delegateolarak yeniden adlandırın. (I8589b, b/399629301)
Sürüm 2.9.0-alpha11
26 Şubat 2025
androidx.lifecycle:lifecycle-*:2.9.0-alpha11 iptal edilir. 2.9.0-alpha11 sürümü bu commit'leri içerir.
API Değişiklikleri
- SavedStateConfigparametresini- saved()temsilcilerine ekleyin (I39b3a)
Sürüm 2.9.0-alpha10
12 Şubat 2025
androidx.lifecycle:lifecycle-*:2.9.0-alpha10 iptal edilir. 2.9.0-alpha10 sürümü bu commit'leri içerir.
API Değişiklikleri
- MutableStateSerializer,- lifecycle-viewmodel-composekonumundan- savedstate-composekonumuna taşındı. (I4f690, b/378895074)
Harici Katkı (External Contribution)
- Kompozisyonda Lifecycle::currentStateçağrılmasıyla ilgili yeni bir Lint sorunu ekler. Bunun yerine, Yaşam Döngüsü durumundaki değişikliklerin yeniden oluşturmaya doğru şekilde neden olmasını sağlamak içincurrentStateAsalue().valuekullanılması önerilir. Teşekkürler Steven Schoen! (Iad484)
Sürüm 2.9.0-alpha09
29 Ocak 2025
androidx.lifecycle:lifecycle-*:2.9.0-alpha09 iptal edilir. 2.9.0-alpha09 sürümü bu commit'leri içerir.
Yeni Özellikler
- androidx.compose.runtime.MutableStateöğesini serileştirmek için- MutableStateSerializerekleyin. (Idfc48, b/378895074)
API Değişiklikleri
- Aşırı yüklenmiş SavedStateHandle.saved()temsilci işlevlerini varsayılan parametrelerle değiştirme (Icd1c1)
- AbstractSavedStateViewModelFactory, her- ViewModeliçin bir- SavedStateHandleoluşturduğundan gereksiz ek yük oluşturduğu için desteği sonlandırılmıştır. Daha verimli- ViewModeloluşturma için- ViewModelProvider.Factoryile birlikte- CreationExtras.createSavedStateHandlekullanın. (Ia920b, b/388590327)
Sürüm 2.9.0-alpha08
11 Aralık 2024
androidx.lifecycle:lifecycle-*:2.9.0-alpha08 iptal edilir. 2.9.0-alpha08 sürümü bu commit'leri içerir.
Yeni Özellikler
- Test edilen ViewModelve ilişkili tüm bileşenleri yeniden oluşturarak bir Sistem Süreci Ölümü simüle etmek içinViewModelScenario.recreateekleyin. (Id6a69, b/381063087)
- İlgili findViewTreeAPI'leri aracılığıyla alınanLifecycleOwnerveViewModelStoreOwnerörnekleri artık bir görünümün bağlantısız üst öğeleri (ör.ViewOverlay) aracılığıyla çözümlenebilir. Ayrık görünüm üst öğeleri hakkında daha fazla bilgi için Core'un sürüm notlarına veyaViewTree.setViewTreeDisjointParentbölümündeki dokümanlara bakın. (I800f4)
API Değişiklikleri
- Adlandırmaları ve paket düzenini SavedStateRegistryOwnerDelegateile daha tutarlı hale getirin (I8c135, b/376026744)
Hata Düzeltmeleri
- Bu kitaplık artık tür kullanımı olan JSpecify nullness ek açıklamalarını kullanıyor. Kotlin geliştiricileri, doğru kullanımı zorunlu kılmak için aşağıdaki derleyici bağımsız değişkenini kullanmalıdır: -Xjspecify-annotations=strict(bu, Kotlin derleyicisinin 2.1.0 sürümünden itibaren varsayılan değerdir). (Ie4340, b/326456246)
- Doküman ViewModel.onClearedtemizleme sırası. (I586c7, b/363984116)
Sürüm 2.9.0-alpha07
13 Kasım 2024
androidx.lifecycle:lifecycle-*:2.9.0-alpha07 iptal edilir. 2.9.0-alpha07 sürümü bu commit'leri içerir.
Kotlin Multiplatform Uyumluluğu
- Lifecycle ViewModel SavedStateartık KMP ile uyumlu. Bu,SavedStateHandle'ı ortak kodda kullanmanıza olanak tanır. (Ib6394, b/334076622)
KotlinX Serialization Support
- SavedState - 1.3.0-alpha05'e eklenen KotlinX Serialization desteğiyle birlikte,- @Serializablesınıflarını- SavedStateHandleiçinde kolayca depolamak ve bu sınıfların işlem sonlandırma ve yeniden oluşturma sırasında otomatik olarak geri yüklenmesini sağlamak için- savedadlı tembel özellik temsilcisini kullanıma sunduk.- savedtemsilcisinin tembel olduğunu ve erişilene kadar- initlambda'sını çağırmayacağını veya- SavedStateHandleiçine hiçbir şey kaydetmeyeceğini lütfen unutmayın. (I47a88, b/376026744)- @Serializable data class Person(val firstName: String, val lastName: String) class MyViewModel(handle: SavedStateHandle) : ViewModel() { var person by handle.saved { Person("John", "Doe") } fun onPersonChanged(person: Person) { this.person = person } }
API Değişiklikleri
- MutableStateFlowdöndürmek için- SavedStateHandle'e- getMutableStateFlowekleyin. Bu yeni işlev yalnızca anahtarla kullanılabilir ve- getLiveDataile kullanılamaz. Aynı duruma erişmek için her ikisini de kullanmaya çalışırsanız bir istisna oluşturulur. (I04a4f, b/375408415)
Sürüm 2.9.0-alpha06
30 Ekim 2024
androidx.lifecycle:lifecycle-*:2.9.0-alpha06 iptal edilir. 2.9.0-alpha06 sürümü bu commit'leri içerir.
Davranış Değişiklikleri
- Lifecycle.DESTROYEDdurumu son durumdur ve artık- Lifecycleöğesini bu durumdan başka bir duruma taşımaya yönelik her girişim- IllegalStateExceptionile sonuçlanır. (I116c4, b/370577987)
- SavedStateHandleartık döndürülen- Bundle'nin boş olduğu- SavedStateProvider.saveState()'leri içermiyor. (I910b5, b/370577987)
Hata Düzeltmeleri
- Lifecycle.eventFlow,- Lifecycledeğeri- DESTROYEDolduğunda artık doğru şekilde tamamlanıyor (I293b2, b/374043130)
Sürüm 2.9.0-alpha05
16 Ekim 2024
androidx.lifecycle:lifecycle-*:2.9.0-alpha05 sürümünde önemli bir değişiklik yok. 2.9.0-alpha05 sürümü bu commit'leri içerir.
Sürüm 2.9.0-alpha04
2 Ekim 2024
androidx.lifecycle:lifecycle-*:2.9.0-alpha04 iptal edilir. 2.9.0-alpha04 sürümü bu commit'leri içerir.
Kotlin Multiplatform
- lifecycle-viewmodel-savedstatemodülü,- SavedStateHandlegibi API'lerin gelecekteki bir sürümde ortak kaynak grubunda kullanıma sunulmasına hazırlık olarak artık KMP ile uyumlu olacak şekilde yapılandırıldı. (I503ed, I48764, b/334076622)
Sürüm 2.9.0-alpha03
18 Eylül 2024
androidx.lifecycle:lifecycle-*:2.9.0-alpha03 iptal edilir. 2.9.0-alpha03 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
- Yaşam Döngüsü 2.8.6:NullSafeMutableLiveDataLint hatası, akıllı yayınlar için daha iyi destek sunarak yanlış pozitifleri önler. (85fed6, b/181042665)
Bağımlılık Güncellemeleri
- Yaşam Döngüsü 2.8.6: Lifecycle Runtime Compose artık Compose Runtime1.7.1'a bağlıdır.
- Lifecycle Runtime artık ProfileInstaller 1.4.0'a bağlıdır.
Sürüm 2.9.0-alpha02
4 Eylül 2024
androidx.lifecycle:lifecycle-*:2.9.0-alpha02 iptal edilir. 2.9.0-alpha02 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
- Yaşam döngüsü2.8.5bölümünde:androidx.lifecycle.ReportFragmentProGuard kurallarını karartmaya izin verecek şekilde güncelleyin . (ff898e1)
Harici Katkı (External Contribution)
- androidx.compose.ui.platform.LocalLifecycleOwneröğesini ortak kaynak kümesine (KMP) taşıyın. Katkısı için JetBrains'ten Ivan Matkov'a teşekkür ederiz. (8cd5d03)
- Yaşam döngüsü 2.8.5: SavedStateHandle.saveable` uzantı temsilcisi artık null değerleri destekliyor. Katkısı için Roman Kalukiewicz'e teşekkür ederiz. (0d78ea6)
Sürüm 2.9.0-alpha01
7 Ağustos 2024
androidx.lifecycle:lifecycle-*:2.9.0-alpha01 iptal edilir. 2.9.0-alpha01 sürümü bu commit'leri içerir.
Kotlin Multiplatform
- lifecycle-testingartık KMP ile uyumlu. (Iea41e)
- linuxArm64Kotlin Multiplatform hedefi için destek ekleyin (I139d3, b/338268719)
Yeni Özellikler
- ViewModel'leri yalıtılmış olarak test etmek için ViewModelScenariosınıfı sağlayan yeni birandroidx.lifecycle:lifecycle-viewmodel-testingKMP yapısı kullanıma sunuldu. Bu yapı,onCleared(tüm platformlar) veSavedStateHandle(yalnızca Android) için destek sunar. (337f68d, c9b3409, 9799a95c, b/264602919)
- ViewModelProviderile- ViewModeloluşturma artık iş parçacığı açısından güvenli.- @MainThreadek açıklamaları kaldırıldı. (Ifd978, b/237006831)
API Değişiklikleri
- Anonim CreationExtras.Keynesnelerin oluşturulmasını kolaylaştırmak içinCreationExtras.Key()fabrika işlevini ekleyin. (I970ee)
- CreationExtrasartık Kotlin'de içeriklerin deyimsel olarak işlenmesini sağlamak için harita benzeri operatör aşırı yüklemelerini içeriyor.- in,- +=ve- +özelliklerinin- CreationExtrasile birlikte kullanılmasına olanak tanır. (Ib4353)
- CreationExtrasartık- equals,- hashCodeve- toStringyöntemlerini uyguluyor. (Ib4353)
- NewInstanceFactoryartık JVM Desktop ve Android hedeflerinde kullanılabilir. (d3d0892)
- Kotlin dilinin 2.0 sürümünde (I39df2) temel Application'ı güvenli bir şekilde kullanıma sunmak için satır içi uzantı özelliği
Hata Düzeltmeleri
- AGP 7.3 veya sonraki sürümleriyle (ör. R8 sürümü 3.3) R8 kullanılırken ve AGP 8.1 veya sonraki sürümleriyle (ör. D8 sürümü 8.1) tüm derlemeler kullanılırken yeni platform API'lerine erişimin manuel olarak ana hatlarının oluşturulması, API modelleme aracılığıyla otomatik olarak yapıldığından kaldırıldı. AGP kullanmayan müşterilerin D8'in 8.1 veya sonraki bir sürümüne güncellemeleri önerilir. Daha fazla bilgi için bu makaleye göz atın. (If6b4c, b/345472586)
Sürüm 2.8
Sürüm 2.8.7
30 Ekim 2024
androidx.lifecycle:lifecycle-*:2.8.7 iptal edilir. 2.8.7 sürümü bu commit'leri içerir.
API Değişiklikleri
- androidx.compose.ui.platform.LocalLifecycleOwnerartık ortak kaynak kümesinde (KMP) kullanılabilir. (6a3f5b3)
- lifecycle-runtime-compose:- desktopyapı kaldırıldı,- -jvmStubsve- -linuxx64Stubsyapıları eklendi. Bu hedeflerden hiçbiri kullanılmak üzere tasarlanmamıştır. Jetbrains Compose çalışmalarına yardımcı olmak için yer tutucu olarak kullanılırlar. (6a3f5b3)
Sürüm 2.8.6
18 Eylül 2024
androidx.lifecycle:lifecycle-*:2.8.6 iptal edilir. 2.8.6 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
- NullSafeMutableLiveDataLint hatası, akıllı yayınlar için daha iyi destek sunarak yanlış pozitif sonuçları önler. (85fed6, b/181042665)
Bağımlılık Güncellemeleri
- Lifecycle Runtime Compose artık Compose Runtime 1.7.1'a bağlı
Sürüm 2.8.5
4 Eylül 2024
androidx.lifecycle:lifecycle-*:2.8.5 iptal edilir. 2.8.5 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
- androidx.lifecycle.ReportFragmentProGuard kurallarını karartmaya izin verecek şekilde güncelleyin . (ff898e1)
Harici Katkı (External Contribution)
- SavedStateHandle.saveableuzantı temsilcisi artık boş değerleri destekliyor. Katkısı için Roman Kalukiewicz'e teşekkür ederiz. (0d78ea6)
Sürüm 2.8.4
24 Temmuz 2024
androidx.lifecycle:lifecycle-*:2.8.4 iptal edilir. 2.8.4 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
- LiveData.asFlow()artık, döndürülen Flow'un- LiveDataüzerinde önceden ayarlanmış bir değer alındıktan hemen sonra tamamlandığı durumları (örneğin,- take(1)kullanılırken) doğru şekilde işliyor. (I9c566)
- Lifecycle*Effecttamamlama işlemi artık idempotent (yani- onStopOrDispose, Lifecycle durdurulduğu için çağrıldıysa Lifecycle tekrar- STARTEDdurumuna dönmediği sürece elden çıkarma sırasında ikinci kez çağrılmaz) (I5f607, b/352364595)
Sürüm 2.8.3
1 Temmuz 2024
androidx.lifecycle:lifecycle-*:2.8.3 iptal edilir. 2.8.3 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
- Kod küçültme kullanılırken Lifecycle 2.8'in Compose 1.6.0 ve önceki sürümlerle geriye dönük uyumluluğuyla ilgili sorun düzeltildi. (aosp/3133056, b/346808608)
Sürüm 2.8.2
12 Haziran 2024
androidx.lifecycle:lifecycle-*:2.8.2 iptal edilir. 2.8.2 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
- Lifecycle 2.8.X'i Compose 1.6.X veya daha eski bir sürümle kullanırken oluşan CompositionLocal LocalLifecycleOwner not presenthataları düzeltildi. Artık Lifecycle 2.8.2'yi Compose'un herhangi bir sürümüyle geçici çözümler kullanmadan kullanabilirsiniz. (aosp/3105647, b/336842920)
- ViewModelProviderYaşam Döngüsü bağımlılıklarının önceki sürümleri 2.8 ve sonraki sürümlerle karıştırıldığında- ViewModelProviderartık kilitlenmeyecek. Bu sayede LeakCanary gibi kitaplıklarla ilgili sorunlar düzeltilecek.- compileOnly(I80383, b/341792251)
Sürüm 2.8.1
29 Mayıs 2024
androidx.lifecycle:lifecycle-*:2.8.1 iptal edilir. 2.8.1 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
- lifecycle-viewmodel-composeartık yalnızca- compose-runtimeile ortak bağımlılığa sahip ve- compose-uiile ortak bağımlılığı kaldırıldı. Android yapısı, uyumluluk için- compose-uiözelliğini korur. (aosp/3079334, b/339562627)
- ViewModel'nın- saveableentegrasyonu, özellik temsilcilerini kullanırken artık otomatik olarak oluşturulan anahtarın bir parçası olarak sınıf adını kullanıyor. Böylece, birden fazla sınıf aynı- SavedStateHandle'ı kullandığında çakışmalar önleniyor. (aosp/3063463)
Sürüm 2.8.0
14 Mayıs 2024
androidx.lifecycle:lifecycle-*:2.8.0 iptal edilir. 2.8.0 sürümü bu commit'leri içerir.
2.7.0 sürümünden beri yapılan önemli değişiklikler
- LocalLifecycleOwner, Compose tabanlı yardımcı API'lerinin Compose kullanıcı arayüzü dışında kullanılabilmesi için Compose kullanıcı arayüzünden- lifecycle-runtime-compose'ye taşındı.
- lifecycle-runtime-composeyapısı artık- dropUnlessResumedve- dropUnlessStartedAPI'lerini içeriyor. Bu API'ler,- LifecycleOwnerdeğeri belirtilen- Lifecycle.Statedeğerinin altına düşse bile tıklama veya diğer etkinlikleri bırakmanıza olanak tanır. Örneğin, başka bir ekrana geçiş başladıktan sonra tıklama etkinliklerinin işlenmesini önlemek için Navigation Compose ile birlikte kullanılabilir:- onClick: () -> Unit = dropUnlessResumed { navController.navigate(NEW_SCREEN) }
- ViewModel.viewModelScopeartık geçersiz kılınabilir bir oluşturucu parametresi. Bu sayede kendi göndericinizi ve- SupervisorJob()öğenizi ekleyebilir veya- runTestiçinde bulunan- backgroundScopeöğesini kullanarak varsayılanı geçersiz kılabilirsiniz. (I2817c, b/264598574)- class MyViewModel( // Make Dispatchers.Main the default, rather than Dispatchers.Main.immediate viewModelScope: CoroutineScope = Dispatchers.Main + SupervisorJob() ) : ViewModel(viewModelScope) { // Use viewModelScope as before, without any code changes } // Allows overriding the viewModelScope in a test fun Test() = runTest { val viewModel = MyViewModel(backgroundScope) }
- ViewModel, Kotlin'de yeniden yazıldı ve artık- Closeableyerine- AutoClosablekullanılıyor. Artık- AutoCloseablenesneleri eklemeyi destekliyor. Bu nesneler,- getCloseable()üzerinden alınmalarını sağlayan bir- keyile birlikte gelir.
- LifecycleStartEffectve- LifecycleResumeEffectAPI'lerini anahtarsız çağırmak, bu API'lerin yansıttığı- DisposableEffectAPI'siyle aynı kurala tabi olarak artık bir hatadır.
- LiveDataReactiveStreams.toPublisher(lifecycleOwner, liveData)yerine- LiveData.toPublisher(lifecycleOwner)kullanımdan kaldırıldı.
- lifecycle-livedata-core-ktxKotlin uzantıları artık- lifecycle-livedata-coremodülüne taşındı.
- NullSafeMutableLiveData, birçok yanlış pozitif sonucu önlemek için yeniden düzenlendi.
Lifecycle Kotlin Multiplatform Uyumluluğu
Lifecycle, LifecycleOwner, LifecycleObserver, Lifecycle.State, Lifecycle.Event ve LifecycleRegistry içindeki temel yaşam döngüsü API'leri artık Kotlin Multiplatform ile uyumlu yapılar halinde gönderiliyor.
Etkilenen yapılar:
- lifecycle-common, çoğu API'yi- common'ye taşır ve Android'e ek olarak jvm ile iOS'i destekler.
- lifecycle-runtime, çoğu API'yi- common'ye taşır ve Android'e ek olarak jvm ile iOS'i destekler.
- lifecycle-runtime-ktxartık boş ve tüm API'ler- lifecycle-runtime'ye taşındı.
- lifecycle-runtime-composetüm API'leri- common'ye taşır ve- androidx.compose'nin çok platformlu desteğine uygun bir Android yapısı gönderir.
ViewModel Kotlin Multiplatform Uyumluluğu
lifecycle-viewmodel yapısı ve ViewModel, ViewModelStore, ViewModelStoreOwner ve ViewModelProvider gibi API'ler artık Kotlin Multiplatform ile uyumlu yapılarda sunuluyor.
Bu değişikliğe uyum sağlamak için ViewModelProvider üzerindekiler gibi java.lang.Class<T> alan yöntemlerin artık kotlin.reflect.KClass<T> alan eşdeğer bir yöntemi var.
Android'de ikili uyumluluk korunmuştur ancak Android API yüzeyini ortak API yüzeyiyle karşılaştırırken dikkat edilmesi gereken birkaç önemli değişiklik vardır:
- ViewModelProviderörneği oluşturma işlemi artık oluşturucusunu doğrudan çağırmak yerine- ViewModelProvider.create()yöntemleri aracılığıyla yapılır.
- ViewModelProvider.NewInstanceFactoryve- ViewModelProvider.AndroidViewModelFactoryyalnızca Android'de kullanılabilir.- Özel Fabrikaların ViewModelProvider.Factory'dan genişletilmesi veCreationExtrasalancreateyönteminin veyaviewModelFactoryKotlin DSL'nin kullanılması önerilir.
 
- Özel Fabrikaların 
- JVM dışı platformlarda ViewModelProvideröğesini özel bir fabrika olmadan kullanmakUnsupportedOperationExceptionile sonuçlanır. JVM platformlarında, özel bir fabrika sağlanmadığı takdirde ViewModel'in bağımsız değişken içermeyen oluşturucusu kullanılarak uyumluluk korunur.
- viewModelScope,- Dispatchers.Main'ın kullanılamadığı platformlarda (ör.- EmptyCoroutineContextLinux).
Etkilenen yapılar:
- lifecycle-viewmodel, çoğu API'yi- common'ye taşır ve Android'e ek olarak jvm ile iOS'i destekler.
- lifecycle-viewmodel-ktxartık boş ve tüm API'ler- lifecycle-viewmodel'ye taşındı.
- lifecycle-viewmodel-composetüm API'leri- common'ye taşır ve- androidx.compose'nin çok platformlu desteğine uygun bir Android yapısı gönderir.
Davranış Değişiklikleri
- InitializerViewModelFactory(- viewModelFactoryoluşturucu işlevi dahil) artık aynı- clazz: KClass<VM : ViewModel>ile bir- initializerdaha önce eklenmişse- IllegalArgumentExceptionhatası verecek. (Ic3a36)
Bilinen Sorunlar
- lifecycle-*:2.8.0için minimum Compose sürümü 1.7.0-alpha05 (b/336842920) gerekir.
Sürüm 2.8.0-rc01
1 Mayıs 2024
androidx.lifecycle:lifecycle-*:2.8.0-rc01 iptal edilir. 2.8.0-rc01 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
- lifecycle-commonsınıfları için temel profilin düzgün şekilde paketlenmemesine neden olan sorun düzeltildi. Bunlar artık- lifecycle-runtimeAAR'sında paketleniyor. (aosp/3038274, b/322382422)
- ViewModel'e eklenen AutoCloseableörneklerinin temizlenme şeklindeki istenmeyen sıralama değişikliği düzeltildi. Önceki sıralama (addCloseable(String, AutoCloseable), ardındanaddClosable(AutoCloseable), ardındanonCleared()) geri yüklendi. (aosp/3041632)
- Yerel ve JVM masaüstü ortamlarında viewModelScopeiçin varsayılan oluşturma davranışını iyileştirin. (aosp/3039221)
Harici Katkı (External Contribution)
- JVM Desktop'ta ana iş parçacığı kontrolünü iyileştirdiği için Victor Kropp'a teşekkür ederiz. (aosp/3037116)
Sürüm 2.8.0-beta01
17 Nisan 2024
androidx.lifecycle:lifecycle-*:2.8.0-beta01 iptal edilir. 2.8.0-beta01 sürümü bu commit'leri içerir.
Yeni Özellikler
- lifecycle-runtime-composeyapısı artık Kotlin Multiplatform ile uyumlu. Bu nedenle kodu- common'ye taşınıyor ve- androidx.compose'nin çok platformlu desteğine uygun bir Android yapısı gönderiliyor. (If7a71, I4f4a0, b/331769623)
Sürüm 2.8.0-alpha04
3 Nisan 2024
androidx.lifecycle:lifecycle-*:2.8.0-alpha04 iptal edilir. 2.8.0-alpha04 sürümü bu commit'leri içerir.
Yeni Özellikler
- lifecycle-viewmodel-composeyapısı artık Kotlin Multiplatform ile uyumlu. Kodunu- common'ye taşıyor ve- androidx.compose'nin çok platformlu desteğine uygun bir Android yapısı gönderiyor. Bu değişikliği karşılamak için Composable- viewModelyöntemi artık- java.lang.Class'ye ek olarak- KClassde kabul ediyor. (b/330323282)
Hata Düzeltmeleri
- NullSafeMutableLiveData, birçok yanlış pozitif sonucu önlemek için yeniden düzenlendi. (I2d8c1, Iafb18, I03463, I7ecef)
Bağımlılık güncellemesi
- lifecycle-viewmodel-composeyapısı artık Compose 1.6.0'a bağlıdır.
- Yaşam döngüsü artık Profile Installer 1.3.1'e bağlıdır.
Sürüm 2.8.0-alpha03
20 Mart 2024
androidx.lifecycle:lifecycle-*:2.8.0-alpha03 iptal edilir. 2.8.0-alpha03 sürümü bu commit'leri içerir.
Yeni Özellikler
- ViewModel.viewModelScopeartık geçersiz kılınabilir bir oluşturucu parametresi. Bu sayede kendi göndericinizi ve- SupervisorJob()öğenizi ekleyebilir veya- runTestiçinde bulunan- backgroundScopeöğesini kullanarak varsayılanı geçersiz kılabilirsiniz. (I2817c, b/264598574)- class MyViewModel( // Make Dispatchers.Main the default, rather than Dispatchers.Main.immediate viewModelScope: CoroutineScope = Dispatchers.Main + SupervisorJob() ) : ViewModel(viewModelScope) { // Use viewModelScope as before, without any code changes } // Allows overriding the viewModelScope in a test fun Test() = runTest { val viewModel = MyViewModel(backgroundScope) }
Kotlin Multiplatform Uyumluluğu
lifecycle-viewmodel yapısı ve ViewModel, ViewModelStore, ViewModelStoreOwner ve ViewModelProvider gibi API'ler artık Kotlin Multiplatform ile uyumlu yapılarda sunuluyor. (b/214568825)
Bu değişikliğe uyum sağlamak için ViewModelProvider üzerindekiler gibi java.lang.Class<T> alan yöntemlerin artık kotlin.reflect.KClass<T> alan eşdeğer bir yöntemi var.
Android'de ikili uyumluluk korunmuştur ancak Android API yüzeyini ortak API yüzeyiyle karşılaştırırken dikkat edilmesi gereken birkaç önemli değişiklik vardır:
- ViewModelProviderörneği oluşturma işlemi artık oluşturucusunu doğrudan çağırmak yerine- ViewModelProvider.create()yöntemleri aracılığıyla yapılır.
- ViewModelProvider.NewInstanceFactoryve- ViewModelProvider.AndroidViewModelFactoryyalnızca Android'de kullanılabilir.- Özel Fabrikaların ViewModelProvider.Factory'dan genişletilmesi veCreationExtrasalancreateyönteminin veyaviewModelFactoryKotlin DSL'nin kullanılması önerilir.
 
- Özel Fabrikaların 
- JVM dışı platformlarda ViewModelProvideröğesini özel bir fabrika olmadan kullanmakUnsupportedOperationExceptionile sonuçlanır. JVM platformlarında, özel bir fabrika sağlanmadığı takdirde ViewModel'in bağımsız değişken içermeyen oluşturucusu kullanılarak uyumluluk korunur.
- viewModelScope,- Dispatchers.Main'ın kullanılamadığı platformlarda (ör.- EmptyCoroutineContextLinux).
Davranış Değişiklikleri
- InitializerViewModelFactory(- viewModelFactoryoluşturucu işlevi dahil) artık aynı- clazz: KClass<VM : ViewModel>ile bir- initializerdaha önce eklenmişse- IllegalArgumentExceptionhatası verecek. (Ic3a36)
Hata Düzeltmeleri
- ViewModel.getCloseableartık yinelenen anahtarları işliyor:- keyile ilişkilendirilmiş bir- AutoCloseablekaynağı varsa eski kaynak hemen değiştirilip kapatılacak. (Ibeb67)
- ViewModelöğesinin- viewModelScopeözelliğine erişim artık iş parçacığı açısından güvenli. (If4766, b/322407038)
Harici Katkı (External Contribution)
- LocalLifecycleOwner, Compose tabanlı yardımcı API'lerinin Compose UI dışında kullanılabilmesi için Compose UI'dan lifecycle-runtime-compose'a taşındı. Katkısı için Jake Wharton'a teşekkür ederiz. (I6c41b, b/328263448)
Sürüm 2.8.0-alpha02
21 Şubat 2024
androidx.lifecycle:lifecycle-*:2.8.0-alpha02 iptal edilir. 2.8.0-alpha02 sürümü şu commit'leri içerir.
Yeni Özellikler
- dropUnlessResumedve- dropUnlessStartedAPI'leri eklendi. Bu API'ler,- LifecycleOwnerdeğeri verilen- Lifecycle.Statedeğerinin altına düşse bile tıklama veya diğer etkinlikleri bırakmanıza olanak tanır. Örneğin, başka bir ekrana geçiş başladıktan sonra tıklama etkinliklerinin işlenmesini önlemek için Navigation Compose ile kullanılabilir:- onClick: () -> Unit = dropUnlessResumed { navController.navigate(NEW_SCREEN) }(Icba83, b/317230685)
Kotlin Dönüşümleri
- ViewModelartık Kotlin ile yazılıyor (I16f26, b/214568825)
- lifecycle-viewmodel-ktxKotlin uzantıları artık temel yaşam döngüsü modülüne taşındı. (Id787b, b/274800183)
- lifecycle-runtime-ktxKotlin uzantıları artık temel yaşam döngüsü modülüne taşındı. (Ic3686, b/274800183)
- lifecycle-livedata-core-ktxKotlin uzantıları artık temel yaşam döngüsü modülüne taşındı. (I54a3d, b/274800183)
Kotlin Multiplatform Uyumluluğu
- Lifecycle,- LifecycleOwner,- LifecycleObserver,- Lifecycle.State,- Lifecycle.Eventve- LifecycleRegistryiçindeki temel yaşam döngüsü API'leri artık Kotlin Multiplatform ile uyumlu yapılar halinde gönderiliyor. (b/317249252)
API Değişiklikleri
- LifecycleStartEffectve- LifecycleResumeEffectAPI'lerini anahtarsız çağırmak, bu API'lerin yansıttığı- DisposableEffectAPI'siyle aynı kurala tabi olarak artık bir hatadır. (Ib0e0c, b/323518079)
- ViewModelartık- Closeableyerine- AutoCloseablekullanıyor. Bu, geriye dönük uyumlu bir değişikliktir. (I27f8e, b/214568825)
- LiveDataReactiveStreams.toPublisher(lifecycleOwner, liveData)yerine- LiveData.toPublisher(lifecycleOwner)kullanımdan kaldırıldı. (Iabe29, b/262623005)
Harici Katkı (External Contribution)
- Lifecycle'ı Kotlin Multiplatform'a taşımamıza yardımcı olan Jetbrains'ten Ivan Matkov'a teşekkür ederiz. (aosp/2926690, I0c5ac, If445d)
Sürüm 2.8.0-alpha01
24 Ocak 2024
androidx.lifecycle:lifecycle-*:2.8.0-alpha01 iptal edilir. 2.8.0-alpha01 sürümü şu commit'leri içerir.
Yeni Özellikler
- ViewModelartık- Closeablenesnelerinin- keyile eklenmesini destekliyor. Bu sayede nesneler- getCloseable()üzerinden alınabiliyor. (I3cf63)
Sürüm 2.7
Sürüm 2.7.0
10 Ocak 2024
androidx.lifecycle:lifecycle-*:2.7.0 iptal edilir. 2.7.0 sürümü şu commit'leri içerir.
2.6.0 sürümünden beri yapılan önemli değişiklikler
- TestLifecycleOwnerartık, durum değişikliğinin ve tüm- LifecycleObservergeri çağırmalarının döndürülmeden önce tamamlanmasını sağlayan bir askıya alma işlevi- setCurrentState()içeriyor. Özellikle,- currentStateözelliğini doğrudan ayarlamaktan farklı olarak bu işlemde- runBlockingkullanılmaz. Bu nedenle,- runTesttarafından sağlananlar gibi bir coroutine içinde güvenle kullanılabilir.
- mapve- switchMapuzantıları artık- distinctUntilChangeddavranışını yansıtır.- LiveDataöğesinde- valueayarlanmışsa döndürülen- LiveDataöğesinin- valuedeğerini doldurmak için- map/- switchMapişlevi hemen çağrılır.- LiveDataBu, ilk değerin ilk bileşimde (- observeAsState()ile kullanıldığında) ayarlanmasını sağlar ancak gözlem davranışını değiştirmez. Kaynaktaki- LiveDatadeğerleri,- LiveData'yi gözlemlemeye başladığınızda yalnızca bir kez uygulanır.
- Bu sürümde, işlem sonlandırılıp yeniden oluşturulduktan sonra SavedStateHandle'nın özelParcelablesınıflarını düzgün şekilde geri yüklememesine neden olan sorun düzeltildi. Android çerçevesi tarafından kaybedilen tür bilgileri nedeniyle, özel Parcelable dizileri ek çalışma gerektirir (doğru türde türü belirlenmiş bir dizi manuel olarak oluşturulur) veget,getLiveDatavegetStateFlowile ilgili dokümanlarda artık bu sınırlama özellikle belirtilmektedir.
- LifecycleObserverile ilişkili proguard keep kuralları kaldırıldı. Bu nedenle, yansıtma yoluyla API'leri kullanmak isteyen (ör. uzun süredir kullanımdan kaldırılmış- @OnLifecycleEventek açıklamasını kullanmak) ProGuard ile korunmuş kodların, kendi kullanım alanlarına özel koruma kurallarını sağlaması gerekir.
Yaşam Döngüsü Etkinliği Gözlemlenebilirliği
- LifecycleEventObserverkullanmak yerine artık- Lifecycle.asFlow()uzantı yöntemiyle- Lifecycle.Event- Flowizleyebilirsiniz.
- Jetpack Compose kullanıcıları artık LifecycleEventEffectkullanarakLifecycle.Eventtabanlı Compose yan etkilerini çalıştırabilir.
@Composable
fun HomeScreen(viewModel: HomeViewModel = viewModel()) {
  LifecycleEventEffect(Lifecycle.Event.ON_RESUME) {
    viewModel.refreshData()
  }
  // …
}
- Jetpack Compose kullanıcıları, sırasıyla başlatılan ve durdurulan, devam ettirilen ve duraklatılan etkinlik çiftlerini işlemek için LifecycleStartEffectveLifecycleResumeEffectişlevlerini kullanabilir. Bu API,DisposableEffectiçinde bulunan API'yi yansıtır ve durum yükselirken yapılan değişikliğin tekrar düşerken geri alınması gereken durumlar için uygundur.
fun HomeScreen(viewModel: HomeViewModel = viewModel()) {
  LifecycleStartEffect(viewModel) {
    val timeTracking = viewModel.startTrackingTimeOnScreen()
    onStopOrDispose {
      timeTracking.stopTrackingTimeOnScreen()
    }
  }
  // …
}
Daha fazla bilgi için Yaşam döngüsü etkinliklerinde kod çalıştırma başlıklı makaleyi inceleyin.
Yaşam Döngüsü Durumu Gözlemlenebilirliği
- Mevcut Lifecycle.Statedeğeri artıkLifecycle.currentStateFlowözelliği aracılığıyla gözlemlenebilir. Bu özellik,valuedeğerinin mevcutLifecycle.Stateolduğu birStateFlowdöndürür.
- Jetpack Compose kullanıcıları, Lifecycle.currentStateAsState()uzantısını kullanarakLifecycle.Stateöğesini doğrudan ComposeStateolarak kullanabilir. Bu,lifecycle.currentStateFlow.collectAsState()ile eşdeğerdir (ve daha kısa bir alternatiftir).
Daha fazla bilgi için Yaşam döngüsü durumunu akışlarla toplama başlıklı makaleyi inceleyin.
Sürüm 2.7.0-rc02
13 Aralık 2023
androidx.lifecycle:lifecycle-*:2.7.0-rc02 iptal edilir. 2.7.0-rc02 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
- SavedStateHandleöğesinin, işlem sonlandırılıp yeniden oluşturulduktan sonra özel- Parcelablesınıflarını düzgün şekilde geri yüklememesine neden olan sorun düzeltildi. Android çerçevesi tarafından kaybedilen tür bilgileri nedeniyle, özel Parcelable dizileri ek çalışma gerektirir (doğru türde türü belirlenmiş bir dizi manuel olarak oluşturulur) ve- get,- getLiveDatave- getStateFlowile ilgili dokümanlarda artık bu sınırlama özellikle belirtilmektedir. (I0b55a)
Sürüm 2.7.0-rc01
15 Kasım 2023
androidx.lifecycle:lifecycle-*:2.7.0-rc01 iptal edilir. 2.7.0-rc01 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
- LifecycleStartEffectve- LifecycleResumeEffect,- LifecycleOwnerdeğiştirilirse artık efekt bloğunu doğru şekilde kaldırıp yeniden oluşturuyor. (Ia25c6)
Sürüm 2.7.0-beta01
1 Kasım 2023
androidx.lifecycle:lifecycle-*:2.7.0-beta01, herhangi bir değişiklik yapılmadan yayınlanır. 2.7.0-beta01 sürümü şu commit'leri içerir.
- Beta sürümünde güncelleme yapıldı. Bu sürümde önemli bir değişiklik yapılmadı.
Sürüm 2.7.0-alpha03
18 Ekim 2023
androidx.lifecycle:lifecycle-*:2.7.0-alpha03 iptal edilir. 2.7.0-alpha03 sürümü şu commit'leri içerir.
Yeni Özellikler
- lifecycle-runtime-testingartık eşzamanlı rutin içinde- currentStatealanı kullanılırken- TestLifecycleOwneröğesinin- Lifecycle.Stateayarlanmasını önlemek için yeni bir Lint kontrolü içeriyor. Lint kontrolü artık- setCurrentStateöğesinin askıya alınmasını öneriyor. Bu sayede- Lifecycle.Stateöğesi engellenmeden ayarlanabiliyor. (Icf728, b/297880630)
Hata Düzeltmeleri
- Hem ilk çağrıda hem de sonraki bir çağrıda aynı LiveData.switchMapörneğinin döndürülmesinin,LiveData.switchMapörneğinin kaynak olarak eklenmesini engellemesine neden olan sorun düzeltildi.LiveDataLiveData(Ibedcba7)
Sürüm 2.7.0-alpha02
6 Eylül 2023
androidx.lifecycle:lifecycle-*:2.7.0-alpha02 iptal edilir. 2.7.0-alpha02 sürümü şu commit'leri içerir.
Yeni Özellikler
- TestLifecycleOwnerartık, kullanıcıların- runTesttarafından sağlananlar gibi bir eşzamanlılık rutini içinden- TestLifecycleOwnerkullanma seçeneği sunmak için askıya alma işlevini- setCurrentState()içeriyor. (I329de, b/259344129)
API Değişiklikleri
- lifecycle-livedata-ktxmodüllerindeki tüm dosyalar ana- lifecycle-livedatamodülüne taşındı. (I10c6f, b/274800183)
Davranış Değişiklikleri
- LiveData.map()ve- LiveData.switchMap()uzantıları artık önceki- LiveDataiçin bir değer ayarlanmışsa döndürülen- LiveDataöğesinin- valuedeğerini ayarlayarak sonuçtaki LiveData'nın Jetpack Compose'da kullanıldığında ilk bileşimde doğru duruma sahip olmasını sağlıyor. (I91d2b, b/269479952)
- ViewModel,- onCleared()için bir arama aldıysa- addCloseable()artık- Closeable'ı hemen kapatıyor.- ViewModel(I4712e, b/280294730)
Hata Düzeltmeleri
- Yaşam döngüsü 2.6.2: Durum geri yüklendiyse,save()üst öğede durumu kaydetmeden çağrıldıysa ve ardından durum tekrar geri yüklendiyseSavedStateHandleöğesinin işlem sonlandırıldıktan sonra doğru şekilde geri yüklenmemesine neden olan sorun düzeltildi.SavedStateRegistryBu,rememberSaveableile Navigation Compose'unNavHostarasındaki etkileşimi düzeltir. (aosp/2729289)
Sürüm 2.7.0-alpha01
26 Temmuz 2023
androidx.lifecycle:lifecycle-*:2.7.0-alpha01 iptal edilir. 2.7.0-alpha01 sürümü şu commit'leri içerir.
API Değişiklikleri
- Lifecycle.Stateartık- Lifecycle.currentStateFlowüzerinden Compose'da gözlemlenebilir. Bu işlem,- value'ün mevcut- Lifecycle.Stateolduğu bir- StateFlowdöndürür. (Ib212d, b/209684871)
- Lifecycle.Eventartık- Lifecycle.asFlow().ile- Flowolarak gözlemlenebiliyor (If2c0f, b/176311030)
- LifecycleResumeEffectAPI'si, hem- Lifecycle.Event.ON_RESUMEhem de- Lifecycle.Event.ON_PAUSEetkinlik geri çağırmalarına dayalı olarak Compose- SideEffect'leri çalıştırmak için eklendi. (I60386, b/235529345)
- LifecycleStartEffectAPI'si,- Lifecycle.Event.ON_STARTve- Lifecycle.Event.ON_STOPetkinlik geri çağırmalarına dayalı- SideEffect'leri çalıştırmak için eklendi. (I5a8d1, b/235529345)
- LifecycleEventEffectAPI,- Lifecycle.Eventtabanlı- SideEffect'leri çalıştırmak için eklendi. (Ic9794, b/235529345)
- Lifecycle.collectAsState()uzantısı,- Lifecycle.Stateöğesini doğrudan Compose- Stateolarak kullanıma sunmak için eklendi. Bu,- lifecycle.currentStateFlow.collectAsState()ile eşdeğerdir (ve daha kısa bir alternatiftir). (I11015, b/235529345)
Hata Düzeltmeleri
- LiveData.distinctUntilChanged()uzantısı, önceki- LiveDataiçin bir değer ayarlanmışsa döndürülen- LiveData'nin- valuedeğerini ayarlar. Bu durum, gözlem davranışını değiştirmez. Kaynaktan- LiveDatagelen güncellenmiş değerler, yalnızca- distinctUntilChanged()kaynağından döndürülen- LiveDatagözlemlenmeye başlandığında uygulanır. (Ib482f)
- LifecycleObserverile ilişkili proguard keep kuralları kaldırıldı. Bu nedenle, yansıtma yoluyla API'leri kullanmak isteyen ProGuard ile korunmuş kodların, kendi özel kullanım alanları için kendi koruma kurallarını sağlaması gerekir. (Ia12fd)
Sürüm 2.6
Sürüm 2.6.2
6 Eylül 2023
androidx.lifecycle:lifecycle-*:2.6.2 iptal edilir. 2.6.2 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
- Durum geri yüklendiyse, durum üst öğe SavedStateRegistry'ye kaydedilmedensave()çağrıldıysa ve ardından durum tekrar geri yüklendiyseSavedStateHandleöğesinin işlem sonlandırıldıktan sonra doğru şekilde geri yüklenmemesine neden olan sorun düzeltildi. Bu,rememberSaveableile Navigation Compose'unNavHostarasındaki etkileşimi düzeltir. (aosp/2729289)
Sürüm 2.6.1
22 Mart 2023
androidx.lifecycle:lifecycle-*:2.6.1 iptal edilir. 2.6.1 sürümü şu commit'leri içerir.
Bağımlılık Güncellemeleri
- lifecycle-viewmodel-savedstateartık SavedState- 1.2.1'e bağlıdır. (cd7251)
- Yaşam döngüsü artık ProfileInstaller 1.3.0'a bağlıdır. (f9d30b)
Sürüm 2.6.0
8 Mart 2023
androidx.lifecycle:lifecycle-*:2.6.0 iptal edilir. 2.6.0 sürümü şu commit'leri içerir.
2.5.0 sürümünden beri yapılan önemli değişiklikler
- LiveDataartık- LiveDataüzerinde açık bir değerin ayarlanıp ayarlanmadığını belirten yeni bir- isInitializedözelliği içeriyor. Bu özellik, hiçbir değer ayarlanmadığı için- nulldöndüren- liveData.valueile açık bir- nulldeğeri arasında ayrım yapmanıza olanak tanır.
- MediatorLiveDataartık ilk değeri ayarlamak için bir oluşturucu içeriyor.
- collectAsStateWithLifecycle()'ın- StateFlowve- Flowüzerinde, akışlardan veri toplayan ve yaşam döngüsüne duyarlı bir şekilde en son değerini Compose State olarak temsil eden yeni bir uzantı eklendi.
- Duraklatma dağıtıcısı kullanmak bazı durumlarda kaynak israfına yol açabileceğinden Lifecycle.launchWhenXveLifecycle.whenXyöntemlerinin desteği sonlandırıldı.Lifecycle.repeatOnLifecyclekullanılması önerilir. Çalışmanın tek seferlik olarak askıya alınması hakkında daha fazla bilgi için lütfen bunun neden doğası gereği güvenli olmadığını açıklayan bu belgeye bakın.
- Kotlin'e Dönüştürme: Çok sayıda Lifecycle sınıfı Kotlin'e dönüştürüldü. Dönüştürülen tüm sınıflar, önceki sürümlerle ikili uyumluluklarını korur. Kotlin ile yazılan sınıflar için aşağıdaki sınıflarda kaynakla uyumlu olmayan değişiklikler yapıldı: ViewTreeLifecycleOwner,LiveDataReactiveStreams,HasDefaultViewModelProviderFactory,ViewTreeViewModelStoreOwner,Transformations,ViewModelStoreOwner,LifecycleOwner
Aşağıdaki tabloda, yaşam döngüsünün yeni sürümündeki kaynak dönüşümleri verilmiştir.
| Yaşam Döngüsü 2.5 | Yaşam Döngüsü 2.5 (KTX) | Yaşam Döngüsü 2.6 | 
|---|---|---|
| Transformations.switchMap(liveData) {...} | liveData.switchMap {...} | liveData.switchMap {...} | 
| Transformations.map(liveData) {...} | liveData.map {...} | liveData.map {...} | 
| Transformations.distinctUntilChanged(liveData) {...} | liveData.distinctUntilChanged{...} | liveData.distinctUntilChanged{...} | 
| LiveDataReactiveStreams.fromPublisher(publisher) | publisher.toLiveData() | publisher.toLiveData() | 
| LiveDataReactiveStreams.toPublisher(lifecycleOwner, liveData) | liveData.toPublisher(lifecycleOwner) | liveData.toPublisher(lifecycleOwner) | 
| override fun getDefaultViewModelProviderFactory(): ViewModelProvider.Factory = factory | override fun getDefaultViewModelProviderFactory(): ViewModelProvider.Factory = factory | override val defaultViewModelProviderFactory = factory | 
| override fun getDefaultViewModelCreationExtras(): CreationExtras = extras | override fun getDefaultViewModelCreationExtras(): CreationExtras = extras | override val defaultViewModelProviderCreationExtras = extras | 
| ViewTreeLifecycleOwner.set(view, owner) | ViewTreeLifecycleOwner.set(view, owner) | view.setViewTreeLifecycleOwner(owner) | 
| ViewTreeLifecycleOwner.get(view) | view.findViewTreeLifecycleOwner() | view.findViewTreeLifecycleOwner() | 
| override fun getViewModelStore(): ViewModelStore = store | override fun getViewModelStore(): ViewModelStore = store | override val viewModelStore: ViewModelStore = store | 
| override fun getLifecycle(): Lifecycle = registry | override fun getLifecycle(): Lifecycle = registry | override val lifecycle: Lifecycle get() = registry | 
- Kotlin'de oluşturulan bir ObserveröğesininonChangedyönteminin nullability'si artık genel türün nullability'siyle eşleşiyor.Observer.onChanged()'nın boş değer atanabilir bir türü kabul etmesini istiyorsanızObserver'yi boş değer atanabilir bir türle başlatmanız gerekir.
- Bu sınıflar da Kotlin'e dönüştürüldü ancak kaynak uyumluluğu korunuyor: DefaultLifecycleObserver,LifecycleEventObserver,Lifecycle,LifecycleRegistry,LifecycleObserver,ViewModelStore,AndroidViewModel,AbstractSavedStateViewModelFactory,LifecycleService,ServiceLifecycleDispatcherveProcessLifecycleOwner
Sürüm 2.6.0-rc01
22 Şubat 2023
androidx.lifecycle:lifecycle-*:2.6.0-rc01 iptal edilir. 2.6.0-rc01 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
- LiveData.distinctUntilChanged()uzantısı, önceki- LiveDataiçin bir değer ayarlanmışsa döndürülen- LiveData'nin- valuedeğerini ayarlar. Bu durum, gözlem davranışını değiştirmez. Kaynaktan- LiveDatagelen güncellenmiş değerler, yalnızca- distinctUntilChanged()kaynağından döndürülen- LiveDatagözlemlenmeye başlandığında uygulanır. (Ib482f)
Sürüm 2.6.0-beta01
8 Şubat 2023
androidx.lifecycle:lifecycle-*:2.6.0-beta01 iptal edilir. 2.6.0-beta01 sürümü şu commit'leri içerir.
Kotlin Dönüşümleri
- LifecycleOwnerartık Kotlin ile yazılıyor. Bu, Kotlin'de yazılmış sınıflar için kaynakla uyumlu olmayan bir değişikliktir. Bu sınıflar artık önceki- getLifecycle()işlevini uygulamak yerine- lifecycleözelliğini geçersiz kılmalıdır. (I75b4b, b/240298691)
- ViewModelStoreOwnerartık Kotlin'de. Bu, Kotlin'de yazılmış sınıflar için kaynakla uyumlu olmayan bir değişikliktir. Bu sınıflar artık önceki- getViewModelStore()işlevini uygulamak yerine- viewModelStoreözelliğini geçersiz kılmalıdır. (I86409, b/240298691)
- LifecycleOwnerüzerindeki- lifecycleScopealanını sağlayan Kotlin uzantısı,- lifecycle-runtime-ktx'den- lifecycle-commonyapay eserine taşındı. (I41d78, b/240298691)
- Lifecycleüzerindeki- coroutineScopealanını sağlayan Kotlin uzantısı,- lifecycle-runtime-ktx'den- lifecycle-commonyapay eserine taşındı. (Iabb91, b/240298691)
Sürüm 2.6.0-alpha05
25 Ocak 2023
androidx.lifecycle:lifecycle-*:2.6.0-alpha05 iptal edilir. 2.6.0-alpha05 sürümü şu commit'leri içerir.
Kotlin Dönüşümleri
- Transformationsartık Kotlin ile yazılıyor. Bu, Kotlin ile yazılmış ve doğrudan- Transformations.mapgibi bir söz dizimi kullanan sınıflar için kaynakla uyumlu olmayan bir değişikliktir. Kotlin kodu artık daha önce yalnızca- lifecycle-livedata-ktxkullanılırken kullanılabilen Kotlin uzantı yöntemi söz dizimini kullanmalıdır. Java programlama dili kullanılırken- androidx.arch.core.util.Functionyöntemi alan bu yöntemlerin sürümleri kullanımdan kaldırıldı ve Kotlin- Function1alan sürümlerle değiştirildi. Bu değişiklik, ikili uyumluluğu korur. (I8e14f)
- ViewTreeViewModelStoreOwnerartık Kotlin ile yazılıyor. Bu, Kotlin ile yazılmış sınıflar için kaynakla uyumsuz bir değişikliktir. Daha önce ayarlanmış bir sahibi ayarlamak ve bulmak için artık- View,- androidx.lifecycle.setViewTreeViewModelStoreOwnerve- androidx.lifecycle.findViewTreeViewModelStoreOwnerüzerinde Kotlin uzantı yöntemlerini doğrudan içe aktarıp kullanmanız gerekir. Bu, ikili uyumludur ve Java programlama dilinde yazılan uygulamalar için kaynak uyumlu olmaya devam eder. (Ia06d8, Ib22d8, b/240298691)
- HasDefaultViewModelProviderFactoryarayüzü artık Kotlin ile yazılıyor. Bu, Kotlin'de yazılmış sınıflar için kaynakla uyumsuz bir değişikliktir. Bu sınıflar artık önceki ilgili işlevleri uygulamak yerine- defaultViewModelProviderFactoryve- defaultViewModelCreationExtrasözelliklerini geçersiz kılmalıdır. (Iaed9c, b/240298691)
- Observerartık Kotlin ile yazılıyor.- onChanged()yöntemi artık parametresi için- valueadını kullanıyor. (Iffef2, I4995e, b/240298691)
- AndroidViewModel,- AbstractSavedStateViewModelFactory,- LifecycleService,- ServiceLifecycleDispatcherve- ProcessLifecycleOwnerartık Kotlin'de yazılıyor (I2e771, Ibae40, I160d7, I08884, I1cda7, b/240298691)
Sürüm 2.6.0-alpha04
11 Ocak 2023
androidx.lifecycle:lifecycle-*:2.6.0-alpha04 iptal edilir. 2.6.0-alpha04 sürümü şu commit'leri içerir.
Yeni Özellikler
- LiveDataartık- LiveDataüzerinde açık bir değerin ayarlanıp ayarlanmadığını belirten yeni bir- isInitializedözelliği içeriyor. Bu özellik, hiçbir değer ayarlanmadığı için- nulldöndüren- liveData.valueile açık bir- nulldeğeri arasında ayrım yapmanıza olanak tanır. (Ibd018)
API Değişiklikleri
- collectAsStateWithLifecycle()- lifecycle-runtime-composeAPI'leri artık deneysel durumda değil. (I09d42, b/258835424)
- Duraklatma dağıtıcısı kullanmak bazı durumlarda kaynak israfına yol açabileceğinden Lifecycle.launchWhenXveLifecycle.whenXyöntemlerinin desteği sonlandırıldı.Lifecycle.repeatOnLifecyclekullanılması önerilir. (Iafc54, b/248302832)
Kotlin Dönüşümleri
- ViewTreeLifecycleOwnerartık Kotlin ile yazılıyor. Bu, Kotlin ile yazılmış sınıflar için kaynakla uyumsuz bir değişikliktir. Daha önce ayarlanmış bir sahibi ayarlamak ve bulmak için artık- View,- androidx.lifecycle.setViewTreeLifecycleOwnerve- androidx.lifecycle.findViewTreeLifecycleOwnerüzerinde Kotlin uzantı yöntemlerini doğrudan içe aktarıp kullanmanız gerekir. Bu,- lifecycle-runtime-ktx'daki önceki Kotlin uzantısının yerini alır. Bu, ikili uyumludur ve Java programlama dilinde yazılan uygulamalar için kaynak uyumlu olmaya devam eder. (I8a77a, I5234e, b/240298691)
- LiveDataReactiveStreamsartık Kotlin ile yazılıyor. Daha önce- lifecycle-reactivestreams-ktxiçinde bulunan Kotlin uzantıları- lifecycle-reactivestreamsmodülüne taşındı ve Kotlin ile yazılmış kodlar için birincil yüzey haline geldi. Kotlin uzantı yöntemi API'lerini kullanmıyorsanız bu, Kotlin'de yazılan kod için kaynakla uyumlu olmayan bir değişikliktir. (I2b1b9, I95d22, b/240298691)
- DefaultLifecycleObserver,- LifecycleEventObserver,- Lifecycle,- LifecycleRegistry,- LifecycleObserverve- ViewModelStoreartık Kotlin'de yazılıyor (Iadffd, (I60034, I8c52c, I9593d, I01fe1, I59a23, b/240298691)
Hata Düzeltmeleri
- SavedStateHandleartık yanlış sınıf türüyle- get()çağrılırken- ClassCastExceptionile kilitlenmiyor. (I6ae7c)
Sürüm 2.6.0-alpha03
24 Ekim 2022
androidx.lifecycle:lifecycle-*:2.6.0-alpha03 iptal edilir. 2.6.0-alpha03 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
- Farklı yaşam döngüsü modülleri arasındaki kısıtlamaların amaçlandığı gibi çalışmaması sorunu düzeltildi. (I18d0d, b/249686765)
- LifecycleRegistry.moveToState()tarafından oluşturulan hatalar artık geliştiricileri hataya neden olan bileşen hakkında bilgilendiren daha faydalı bir hata mesajı içeriyor. (Idf4b2, b/244910446)
Sürüm 2.6.0-alpha02
7 Eylül 2022
androidx.lifecycle:lifecycle-*:2.6.0-alpha02 iptal edilir. 2.6.0-alpha02 sürümü şu commit'leri içerir.
API Değişiklikleri
- MediatorLiveDataartık ilk değeri ayarlamak için bir oluşturucu içeriyor. (Ib6cc5, b/151244085)
Hata Düzeltmeleri
- Lifecycleyapılar artık, birbirine bağımlı tüm yaşam döngüsü yapılarının aynı sürümü kullanmasını sağlayan kısıtlamalar içeriyor. Bir bağımlılık yükseltildiğinde diğer bağımlılıklar otomatik olarak yükseltiliyor. b/242871265
- FlowLiveData.asFlow(), iş parçacığı güvenliğini ve bağlam korumasını sağlamak için kendi- Channeluygulamasını kullanmak yerine artık- callbackFlowoluşturuyor. (I4a8b2, b/200596935)
- FlowLiveData'nın- asLiveDataişlevi, yeni- LiveDatanesnesi oluşturulurken artık- StateFlowöğesinin başlangıç değerini koruyacak. (I3f530, b/157380488)
- Yaşam Döngüsü 2.5.1:AndroidViewModelFactory'nin özel uygulamaları, durum bilgisi olan oluşturucuLifecycle2.4+ ile kullanılırken artıkcreate(modelClass)işlevini doğru şekilde çağırıyor (I5b315, b/238011621).
Sürüm 2.6.0-alpha01
29 Haziran 2022
androidx.lifecycle:lifecycle-*:2.6.0-alpha01 iptal edilir. 2.6.0-alpha01 sürümü şu commit'leri içerir.
Yeni Özellikler
- StateFlowve- Flowüzerinde, akışlardan toplayan ve en son değerini yaşam döngüsüne duyarlı bir şekilde Compose State olarak temsil eden- collectAsStateWithLifecycleile ilgili yeni bir uzantı eklendi. Yaşam döngüsü en az belirli bir- Lifecycle.Stateolduğunda akış toplanır ve yeni yayın, State'in değerine ayarlanır. Yaşam döngüsü bu- Lifecycle.Statedeğerinin altına düştüğünde akış toplama işlemi durur ve durumun değeri güncellenmez. (I1856e, b/230557927)
Sürüm 2.5
Sürüm 2.5.1
27 Temmuz 2022
androidx.lifecycle:lifecycle-*:2.5.1 iptal edilir. 2.5.1 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
- AndroidViewModelFactoryöğesinin özel uygulamaları, durum bilgisi olan- AndroidViewModelFactoryoluşturucusu- Lifecycle2.4+ ile kullanılırken artık- create(modelClass)işlevini doğru şekilde çağırıyor. (I5b315, b/238011621)
Sürüm 2.5.0
29 Haziran 2022
androidx.lifecycle:lifecycle-*:2.5.0 iptal edilir. 2.5.0 sürümü şu commit'leri içerir.
2.4.0 sürümünden beri yapılan önemli değişiklikler
- SavedStateHandleartık- getStateFlow()API'si sunuyor. Bu API,- LiveDatakullanmaya alternatif olarak değer değişikliklerini izlemek için Kotlin- StateFlowdöndürüyor.
- ViewModel CreationExtras: Özel bir - ViewModelProvider.Factoryyazarken artık sırasıyla- Applicationveya- SavedStateHandle'ye erişmek için- AndroidViewModelFactoryveya- AbstractSavedStateViewModelFactory'yi genişletmek gerekmiyor. Bunun yerine, bu alanlar- create:- create(Class<T>, CreationExtras)yeni aşırı yüklemesi aracılığıyla- ViewModelProvider.Factoryalt sınıfının her birine- CreationExtrasolarak sağlanır. Bu ekstralar, sırasıyla Activity- 1.5.0ve Fragment- 1.5.0kullanılırken Activity veya Fragment tarafından otomatik olarak sağlanır.- class CustomFactory : ViewModelProvider.Factory { override fun <T : ViewModel> create(modelClass: Class<T>, extras: CreationExtras): T { return when (modelClass) { HomeViewModel::class -> { // Get the Application object from extras val application = checkNotNull(extras[ViewModelProvider.AndroidViewModelFactory.APPLICATION_KEY]) // Pass it directly to HomeViewModel HomeViewModel(application) } DetailViewModel::class -> { // Create a SavedStateHandle for this ViewModel from extras val savedStateHandle = extras.createSavedStateHandle() DetailViewModel(savedStateHandle) } else -> throw IllegalArgumentException("Unknown class $modelClass") } as T } }
- lifecycle-viewmodelartık- viewModelFactoryKotlin DSL'si sunuyor. Bu DSL,- CreationExtrasbirincil veri kaynağı olarak kullanılarak özel fabrikanızın desteklediği her bir- ViewModelsınıfı için bir tane olmak üzere bir veya daha fazla lambda başlatıcı açısından- ViewModelProvider.Factorytanımlamanıza olanak tanır.- val customFactory = viewModelFactory { // The return type of the lambda automatically sets what class this lambda handles initializer { // Get the Application object from extras provided to the lambda val application = checkNotNull(get(ViewModelProvider.AndroidViewModelFactory.APPLICATION_KEY)) HomeViewModel(application) } initializer { val savedStateHandle = createSavedStateHandle() DetailViewModel(savedStateHandle) } }
- lifecycle-viewmodel-composeartık özel bir- ViewModelProvider.Factoryoluşturulmasını gerektirmeden- ViewModelörneği oluşturmak için lambda fabrikası alan bir- viewModel()API sunuyor.- // Within a @Composable, you can now skip writing a custom Factory // and instead write a lambda to do the initialization of your ViewModel val detailViewModel = viewModel { // This lambda is only called the first time the ViewModel is created // and all CreationExtras are available inside the lambda val savedStateHandle = createSavedStateHandle() DetailViewModel(savedStateHandle) }
- SavedStateHandle Compose Saver Integration: - lifecycle-viewmodel-composeyapısı artık- SavedStateHandle.saveableiçinde,- SavedStateHandleile desteklenen- rememberSaveablebenzeri davranışlara olanak tanıyan yeni deneysel API'ler içeriyor.- class ListScreenViewModel(handle: SavedStateHandle): ViewModel() { // This value survives both configuration changes and process death and recreation val editMode by handle.saveable { mutableStateOf(false) } }
- addCloseable()API'si ve- onCleared()'de herhangi bir manuel işlem yapılmasına gerek kalmadan- ViewModeltemizlendiğinde kapatılacak olan- ViewModel'ye bir veya daha fazla- Closeablenesnesi eklemenize olanak tanıyan yeni bir oluşturucu aşırı yüklemesi eklendi.- Örneğin, bir ViewModel'e yerleştirebileceğiniz ancak test yoluyla kontrol edebileceğiniz bir coroutine kapsamı oluşturmak için - Closeablearayüzünü uygulayan bir- CoroutineScopeoluşturabilirsiniz:- class CloseableCoroutineScope( context: CoroutineContext = SupervisorJob() + Dispatchers.Main.immediate ) : Closeable, CoroutineScope { override val coroutineContext: CoroutineContext = context override fun close() { coroutineContext.cancel() } }- Bu değer, - ViewModelile aynı kullanım ömrüne sahip olacak şekilde- viewModelScopeoluşturucunuzda kullanılabilir:- class TestScopeViewModel( val customScope: CloseableCoroutineScope = CloseableCoroutineScope() ) : ViewModel(customScope) { // You can now use customScope in the same way as viewModelScope }
Davranış değişiklikleri
- Lifecycle.Stateöğesini- INITIALIZEDkonumundan- DESTROYEDkonumuna taşımaya çalışırken,- Lifecycleöğesine gözlemci eklenip eklenmediğine bakılmaksızın her zaman- IllegalStateExceptionhatası verilir.
- LifecycleRegistryartık- DESTROYEDdurumuna ulaştığında gözlemcilerini temizleyecek.
Sürüm 2.5.0-rc02
15 Haziran 2022
androidx.lifecycle:lifecycle-*:2.5.0-rc02 iptal edilir. 2.5.0-rc02 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
- ViewModelProvider, compileOnly Lifecycle bağımlılıklarının önceki sürümleri ile 2.5 ve sonraki sürümler karıştırıldığında artık kilitlenmeyecek. (I81a66, b/230454566)
Sürüm 2.5.0-rc01
11 Mayıs 2022
androidx.lifecycle:lifecycle-*:2.5.0-rc01 iptal edilir. 2.5.0-rc01 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
- MediatorLiveData.addSource()artık- nullkaynağını gözlemcilere yaymak yerine- nullkaynağı geçirildiğinde- NullPointerExceptionhatası veriyor.(Ibd0fb, b/123085232)
Sürüm 2.5.0-beta01
20 Nisan 2022
androidx.lifecycle:lifecycle-*:2.5.0-beta01 iptal edilir. 2.5.0-beta01 sürümü şu commit'leri içerir.
API Değişiklikleri
- Durumu SavedStateHandleiçinde kalıcı hale getirmek için özellik adlarını anahtar olarak kullanmak üzereSavedStateHandle.saveableözellik temsilcileri eklendi (I8bb86, b/225014345)
Hata Düzeltmeleri
- Birincil olmayan bir alt gezinme sekmesinde bir NavHostöğesini başka birNavHostöğesinin içine yerleştirmenin, birden fazla geri yığını kullanılırkenIllegalStateExceptionöğesine yol açmasına neden olan sorun düzeltildi. (I11bd5, b/228865698)
Sürüm 2.5.0-alpha06
6 Nisan 2022
androidx.lifecycle:lifecycle-*:2.5.0-alpha06 iptal edilir. 2.5.0-alpha06 sürümü şu commit'leri içerir.
Yeni Özellikler
- MutableStateaşırı yüklemesini- rememberSaveableile eşitlik sağlamak için- SavedStateHandle.saveable'e deneysel olarak ekleyin (I38cfe, b/224565154)
API Değişiklikleri
- CreationExtrasartık sealed yerine abstract. (Ib8a7a)
Hata Düzeltmeleri
- IllegalStateException: Already attached to lifecycleOwnerhatası düzeltildi. Bu hataya- SavedStateHandleControllerneden oluyordu. (I7ea47, b/215406268)
Sürüm 2.5.0-alpha05
23 Mart 2022
androidx.lifecycle:lifecycle-*:2.5.0-alpha05 iptal edilir. 2.5.0-alpha05 sürümü şu commit'leri içerir.
Yeni Özellikler
- lifecycle-viewmodel-composemodülü artık- SavedStateHandleSaveradlı deneysel bir API sunuyor. Bu API,- SavedStateHandleiçindeki değerlerin- rememberSaveableile aynı kaydedilmiş örnek durumuyla doğru şekilde entegre edilmesini sağlıyor. (Ia88b7, b/195689777)
API Değişiklikleri
- Java'da Lifecycle 2.3 ve daha yeni Lifecycle sürümleriyle ilgili uyumluluk sorunu düzeltildi. (I52c8a, b/219545060)
Hata Düzeltmeleri
- SavedStateViewFactoryartık- SavedStateRegistryOwnerile başlatılmış olsa bile- CreationExtraskullanımını destekliyor. Ekstralar sağlanırsa başlatılan bağımsız değişkenler yoksayılır. (I6c43b, b/224844583)
Sürüm 2.5.0-alpha04
9 Mart 2022
androidx.lifecycle:lifecycle-*:2.5.0-alpha04 iptal edilir. 2.5.0-alpha04 sürümü şu commit'leri içerir.
API Değişiklikleri
- SavedStateHandleartık- LiveDatakullanmaya alternatif olarak değer değişikliklerini izlemek için Kotlin- StateFlowdöndüren bir- getStateFlow()API'si sunuyor. (Iad3ab, b/178037961)
Sürüm 2.5.0-alpha03
23 Şubat 2022
androidx.lifecycle:lifecycle-*:2.5.0-alpha03 iptal edilir. 2.5.0-alpha03 sürümü şu commit'leri içerir.
Yeni Özellikler
- addCloseable()API'si ve- onCleared()'de herhangi bir manuel çalışma gerektirmeden- ViewModeltemizlendiğinde kapatılacak olan- ViewModel'ye bir veya daha fazla- Closeablenesnesi eklemenize olanak tanıyan yeni bir oluşturucu aşırı yüklemesi eklendi. (I55ea0)
- lifecycle-viewmodelartık- CreationExtras'ü birincil veri kaynağı olarak kullanarak belirli- ViewModelsınıflarını işlemek için lambda eklemenize olanak tanıyan bir- InitializerViewModelFactorysunuyor. (If58fc, b/216687549)
- lifecycle-viewmodel-composeartık özel bir- ViewModelProvider.Factoryoluşturulmasını gerektirmeden- ViewModelörneği oluşturmak için lambda fabrikası alan bir- viewModel()API sunuyor. (I97fbb, b/216688927)
API Değişiklikleri
- Artık lifecycle-viewmodel-composeüzerindenCreationExtrasileViewModeloluşturabilirsiniz. (I08887, b/216688927)
Davranış değişiklikleri
- Lifecycle.Stateöğesini- INITIALIZEDkonumundan- DESTROYEDkonumuna taşımaya çalışırken,- Lifecycleöğesine gözlemci eklenip eklenmediğine bakılmaksızın her zaman- IllegalStateExceptionhatası verilir. (I7c390, b/177924329)
- LifecycleRegistryartık- DESTROYEDdurumuna ulaştığında gözlemcilerini temizleyecek. (I4f8dd, b/142925860)
Sürüm 2.5.0-alpha02
9 Şubat 2022
androidx.lifecycle:lifecycle-*:2.5.0-alpha02 iptal edilir. 2.5.0-alpha02 sürümü şu commit'leri içerir.
API Değişiklikleri
- SavedStateHandleve- SavedStateViewModelFactory, Kotlin'e dönüştürüldü. Bu, her iki sınıftaki genel türlerin null yapılabilirliğini iyileştirdi. (Ib6ce2, b/216168263, I9647a, b/177667711)
- LiveData- switchMapişlev parametresi artık boş değer atanabilir bir çıkışa sahip olabilir. (I40396, b/132923666)
- LiveData-ktx uzantıları artık- @CheckResultile açıklama eklenerek bu işlevler çağrıldığında sonucun kullanılmasını zorunlu kılıyor. (Ia0f05, b/207325134)
Davranış değişiklikleri
- SavedStateHandleartık belirtilen anahtar için değer olmadığında defaultValue'yu düzgün şekilde saklıyor. (I1c6ce, b/178510877)
Hata Düzeltmeleri
- Yaşam döngüsü 2.4.1:ProcessLifecycleInitializer'ınStartupExceptionoluşturmasını engelleyen düzeltmelerin varsayılan olarak kullanılabilmesi içinlifecycle-process, Startup 1.1.1'e bağlı olacak şekilde güncellendi. (Ib01df, b/216490724)
- Özel AndroidViewModelsınıfları yanlış sırada parametreler içerdiğinde veViewModeloluşturmaya çalıştığında artık daha iyi bir hata mesajı gösteriliyor. (I340f7, b/177667711)
- Artık uygulama ayarlamadan CreationExtrasüzerindenAndroidViewModelFactorykullanarak görünüm modeli oluşturabilirsiniz. (I6ebef, b/217271656)
Sürüm 2.5.0-alpha01
26 Ocak 2022
androidx.lifecycle:lifecycle-*:2.5.0-alpha01 iptal edilir. 2.5.0-alpha01 sürümü şu commit'leri içerir.
ViewModel CreationExtras
Bu sürümle birlikte, ViewModel oluşturma şeklini yeniden yapılandırmanın temelini atıyoruz. Her biri ek işlevsellik sağlayan (AndroidViewModelFactory aracılığıyla Application oluşturucu parametresine, SavedStateViewModelFactory ve AbstractSavedStateViewModelFactory aracılığıyla SavedStateHandle oluşturucu parametresine izin verme vb.) katı bir ViewModelProvider.Factory alt sınıfı kümesi yerine, yeni bir kavram olan CreationExtras'ye dayanan durumsuz fabrikalar dünyasına geçiyoruz. (Ia7343, b/188691010, b/188541057)
Bu değişiklikle birlikte ViewModelProvider artık ViewModelProvider.Factory'nin önceki create(Class<T>) yöntemine doğrudan çağrı yapmayacak. Bunun yerine, create işlevinin yeni bir aşırı yüklenmesini çağırır: create(Class<T>, CreationExtras). Bu nedenle, ViewModelProvider.Factory örneğinin doğrudan uygulandığı her durumda aşağıdaki yeni CreationExtras özelliklerine erişilebilir:
- ViewModelProvider.NewInstanceFactory.VIEW_MODEL_KEY: Bu- String,- ViewModelProvider.get()'ye ilettiğiniz özel anahtara erişim sağlar.
- ViewModelProvider.AndroidViewModelFactory.APPLICATION_KEY,- Applicationsınıfına erişim sağlar.
- SavedStateHandleSupport.SAVED_STATE_REGISTRY_OWNER_KEY, bu ViewModel'i oluşturmak için kullanılan- SavedStateRegistryOwneröğesine erişim sağlar.
- SavedStateHandleSupport.VIEW_MODEL_STORE_OWNER_KEY, bu ViewModel'i oluşturmak için kullanılan- ViewModelStoreOwneröğesine erişim sağlar.
- SavedStateHandleSupport.DEFAULT_ARGS_KEY,- SavedStateHandleoluşturmak için kullanılması gereken- Bundlebağımsız değişkenlerine erişim sağlar.
Bu ekstralar, Activity 1.5.0-alpha01, Fragment 1.5.0-alpha01 ve Navigation 2.5.0-alpha01 kullanılırken varsayılan olarak sağlanır. Bu kitaplıkların eski bir sürümünü kullanıyorsanız CreationExtras boş olur. ViewModelProvider.Factory'nin mevcut tüm alt sınıfları, bu kitaplıkların eski sürümleri tarafından kullanılan eski oluşturma yolunu ve gelecekte kullanılacak CreationExtras yolunu destekleyecek şekilde yeniden yazılmıştır.
Bu CreationExtras, Fabrika alt sınıflarının katı bir hiyerarşisine güvenmeden, ihtiyacınız olan bilgileri her ViewModel'ye ileten bir ViewModelProvider.Factory oluşturmanıza olanak tanır:
class CustomFactory : ViewModelProvider.Factory {
    override fun <T : ViewModel> create(modelClass: Class<T>, extras: CreationExtras): T {
        return when (modelClass) {
            HomeViewModel::class -> {
                // Get the Application object from extras
                val application = checkNotNull(extras[ViewModelProvider.AndroidViewModelFactory.APPLICATION_KEY])
                // Pass it directly to HomeViewModel
                HomeViewModel(application)
            }
            DetailViewModel::class -> {
                // Create a SavedStateHandle for this ViewModel from extras
                val savedStateHandle = extras.createSavedStateHandle()
                DetailViewModel(savedStateHandle)
            }
            else -> throw IllegalArgumentException("Unknown class $modelClass")
        } as T
    }
}
Yalnızca ihtiyaç duyan ViewModel için SavedStateHandleSupport kaynağından CreationExtras üzerinde createSavedStateHandle() Kotlin uzantı işlevini kullanarak SavedStateHandle oluştururuz. (Ia6654, b/188541057)
Özel CreationExtras, ComponentActivity veya Fragment içinde getDefaultViewModelCreationExtras() geçersiz kılınarak sağlanabilir. Böylece, özel ViewModelProvider.Factory'nize yerleşik bir destekli ekleme biçimi olarak sunulur. Bu ekstralar, doğrudan ViewModelProvider ile kullanıldığında veya by viewModels() ve by activityViewModels() Kotlin özellik uzantıları kullanıldığında özel Factory'niz için otomatik olarak kullanılabilir hale gelir. (I79f2b, b/207012584, b/207012585, b/207012490)
Hata Düzeltmeleri
- SavedStateHandleöğesine sağlanan varsayılan değerin, işlem sonlandırılıp yeniden oluşturulduktan sonra- SavedStateHandleöğesinden özel olarak kaldırılmış olsa bile yeniden görünmesi sorunu düzeltildi. Bunun sonucunda- SavedStateHandle, varsayılan değerleri ve geri yüklenen değerleri birleştirmeyecek, bunun yerine yalnızca geri yüklenen değerleri doğruluk kaynağı olarak kullanacaktır. (I53a4b)
Sürüm 2.4
Sürüm 2.4.1
9 Şubat 2022
androidx.lifecycle:lifecycle-*:2.4.1 iptal edilir. 2.4.1 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
- Lifecycle 2.5.0-alpha01'dan geri taşındı:SavedStateHandle'dan özel olarak kaldırılmış olsa bile, birSavedStateHandle'a sağlanan varsayılan değerin işlem sonlandırılıp yeniden oluşturulduktan sonra tekrar görünmesine neden olan sorun düzeltildi. Bunun sonucundaSavedStateHandle, varsayılan değerleri ve geri yüklenen değerleri birleştirmeyecek, bunun yerine yalnızca geri yüklenen değerleri doğruluk kaynağı olarak kullanacaktır. (I53a4b)
- lifecycle-processartık Androidx Startup 1.1.1'e bağlıdır. Bu sürümde,- ProcessLifecycleInitializerkullanımının- StartupException'e neden olduğu bir regresyon düzeltildi. (b/216490724)
Sürüm 2.4.0
27 Ekim 2021
androidx.lifecycle:lifecycle-*:2.4.0 iptal edilir. 2.4.0 sürümü şu commit'leri içerir.
2.3.0 sürümünden beri yapılan önemli değişiklikler
- @OnLifecycleEventdesteği sonlandırıldı. Bunun yerine- LifecycleEventObserverveya- DefaultLifecycleObserverkullanılmalıdır.
- androidx.lifecycle:lifecycle-viewmodel-composekitaplığı eklendi.- viewModel()composable ve- LocalViewModelStoreOwnersağlar.- Kaynakta yapılan, geriye dönük uyumsuzluğa neden olan değişiklik: ViewModelProvider, Kotlin'de yeniden yazıldı.ViewModelProvider.Factory.createyöntemi artık boş değer atanabilir genel değerlere izin vermiyor.
 
- Kaynakta yapılan, geriye dönük uyumsuzluğa neden olan değişiklik: 
- androidx.lifecycle:lifecycle-runtime-ktx'ya yeni eş yordam API'leri eklendi:
- Lifecycle.repeatOnLifecycle, Lifecycle belirli bir durumda olduğunda bir kod bloğunu eşzamanlı yordamda yürüten API. Yaşam döngüsü hedef durumun içine ve dışına çıktıkça engelleme iptal edilip yeniden başlatılır.
- Flow.flowWithLifecycle, yaşam döngüsü belirli bir durumda olduğunda yukarı akış Flow'dan değerler yayan API.
- DefaultLifecycleObserver,- lifecycle.lifecycle-common-java8konumundan- lifecycle.lifecycle-commonkonumuna taşındı.- lifecycle.lifecycle-common-java8,- lifecycle.lifecycle-commonüzerinde artık ek işlevler sunmadığı için- lifecycle.lifecycle-common-java8'ya olan bağımlılık- lifecycle.lifecycle-commonile değiştirilebilir.
- lifecycle-viewmodel-ktx'daki coroutine olmayan API'ler- lifecycle-viewmodelmodülüne taşındı.
- lifecycle-processartık- ProcessLifecycleOwner'ı başlatmak için- androidx.startupkullanıyor.- Bu işlem daha önce - androidx.lifecycle.ProcessLifecycleOwnerInitializertarafından yapılıyordu.- Geçmişte - tools:node="remove"işlem yaşam döngüsünü başlatmak için- ContentProviderkullanmışsanız bunun yerine aşağıdakileri yapmanız gerekir.- <provider android:name="androidx.startup.InitializationProvider" android:authorities=\"${applicationId}.androidx-startup" android:exported="false" tools:node=\"merge"> <!-- If you are using androidx.startup to initialize other components --> <meta-data android:name="androidx.lifecycle.ProcessLifecycleInitializer" android:value="androidx.startup" tools:node="remove" /> </provider>- (veya) - <!-- If you want to disable androidx.startup completely. --> <provider android:name="androidx.startup.InitializationProvider" android:authorities="${applicationId}.androidx-startup" tools:node="remove"> </provider>
Sürüm 2.4.0-rc01
29 Eylül 2021
androidx.lifecycle:lifecycle-*:2.4.0-rc01, Lifecycle 2.4.0-beta01'den herhangi bir değişiklik yapılmadan yayınlandı. 2.4.0-rc01 sürümü şu commit'leri içerir.
Sürüm 2.4.0-beta01
15 Eylül 2021
androidx.lifecycle:lifecycle-*:2.4.0-beta01 iptal edilir. 2.4.0-beta01 sürümü şu commit'leri içerir.
API Değişiklikleri
- @OnLifecycleEventdesteği sonlandırıldı. Bunun yerine- LifecycleEventObserverveya- DefaultLifecycleObserverkullanılmalıdır. (I5a8fa)
- DefaultLifecycleObserver, androidx.lifecycle.lifecycle-common-java8konumundanandroidx.lifecycle.lifecycle-commonkonumuna taşındı.androidx.lifecycle.lifecycle-common-java8,androidx.lifecycle.lifecycle-commonüzerinde artık ek işlevler sunmadığı içinandroidx.lifecycle.lifecycle-common-java8'ya olan bağımlılıkandroidx.lifecycle.lifecycle-commonile değiştirilebilir. (I021aa)
- lifecycle-viewmodel-ktxkitaplığındaki coroutine olmayan API'ler- lifecycle-viewmodelmodülüne taşındı. (I6d5b2)
Harici Katkı (External Contribution)
Sürüm 2.4.0-alpha03
4 Ağustos 2021
androidx.lifecycle:lifecycle-*:2.4.0-alpha03 iptal edilir. 2.4.0-alpha03 sürümü şu commit'leri içerir.
API Değişiklikleri
- Kaynakta yapılan, uyumluluğu bozan değişiklik: ViewModelProvider, Kotlin'de yeniden yazıldı.
  ViewModelProvider.Factory.createyöntemi artık boş değer atanabilir genel öğelere izin vermiyor. (I9b9f6)
Davranış Değişiklikleri
- Lifecycle.repeatOnLifecycle:- block, yürütme tekrarlandığında artık her zaman seri olarak çağrılıyor. (Ibab33)
Harici Katkı (External Contribution)
- repeatOnLifecycledokümanlarındaki kod snippet'lerini düzelttiği için chao2zhang'a teşekkür ederiz. #205.
Sürüm 2.4.0-alpha02
16 Haziran 2021
androidx.lifecycle:lifecycle-*:2.4.0-alpha02 iptal edilir. 2.4.0-alpha02 sürümü bu commit'leri içerir.
Yeni Özellikler
- RepeatOnLifecycleWrongUsagelint denetimi- lifecycle-runtime-ktx'e eklendi. Bu denetim,- repeateOnLifecycleöğesinin- onStart()veya- onResume()içinde yanlış kullanıldığını algılar. (706078, b/187887400)
API Değişiklikleri
- Yapılandırılmış eşzamanlılığa saygı duyan ve hakkında akıl yürütmesi daha kolay olan Lifecycle.repeatOnLifecyclelehineLifecycleOwner.addRepeatingJobAPI'si kaldırıldı. (I4a3a8)
- Diğer androidx.startup.Initializer'lerin bunları bağımlılık olarak kullanabilmesi içinProcessLifecycleInitializer'yı herkese açık hale getirin. (I94c31)
Hata Düzeltmeleri
- Alan değiştiricilere sahip olduğunda NullSafeMutableLiveDatalint kontrolüyle ilgili sorun düzeltildi. (#147, b/183696616)
- Jenerik türler kullanılırken NullSafeMutableLiveDatalint kontrolüyle ilgili başka bir sorun düzeltildi. (#161, b/184830263)
Harici Katkı (External Contribution)
- NullSafeMutableLiveDatalint kontrolünü iyileştirdiği için maxsav'a teşekkür ederiz. (#147, b/183696616)
- NullSafeMutableLiveDatalint kontrolünü iyileştirdiği için kozaxinan'a teşekkür ederiz. (#161, b/184830263)
Sürüm 2.4.0-alpha01
24 Mart 2021
androidx.lifecycle:lifecycle-*:2.4.0-alpha01 iptal edilir. 2.4.0-alpha01 sürümü şu commit'leri içerir.
Davranış Değişiklikleri
- lifecycle-processartık- ProcessLifecycleOwner'ı başlatmak için- androidx.startupkullanıyor.- Bu işlem daha önce - androidx.lifecycle.ProcessLifecycleOwnerInitializertarafından yapılıyordu.- Geçmişte - tools:node="remove"işlem yaşam döngüsünü başlatmak için- ContentProviderkullanmışsanız bunun yerine aşağıdakileri yapmanız gerekir.- <provider android:name="androidx.startup.InitializationProvider" android:authorities=\"${applicationId}.androidx-startup" android:exported="false" tools:node=\"merge"> <!-- If you are using androidx.startup to initialize other components --> <meta-data android:name="androidx.lifecycle.ProcessLifecycleInitializer" android:value="androidx.startup" tools:node="remove" /> </provider>- (veya) - <!-- If you want to disable androidx.startup completely. --> <provider android:name="androidx.startup.InitializationProvider" android:authorities="${applicationId}.androidx-startup" tools:node="remove"> </provider>
API Değişiklikleri
- Flow.flowWithLifecycleAPI'si kullanılarak yaşam döngüsü en azından belirli bir durumda olduğunda yukarı akışlı Flow'dan değerler yayan bir- Lifecycle.repeatOnLifecycleAPI'si eklendi. Bu, yeni- LifecycleOwner.addRepeatinJobAPI'nin bir alternatifidir. (I0f4cd)
Hata Düzeltmeleri
- Yaşam Döngüsü 2.3.1'den itibaren: NonNullableMutableLiveDatalint kuralı artık farklı boş değerlere sahip alan değişkenleri arasında doğru şekilde ayrım yapabilir. (b/169249668)
Lifecycle Viewmodel Compose Version 1.0.0
Sürüm 1.0.0-alpha07
16 Haziran 2021
androidx.lifecycle:lifecycle-viewmodel-compose:1.0.0-alpha07 iptal edilir. 1.0.0-alpha07 sürümü şu commit'leri içerir.
API'de yapılan, geriye dönük uyumluluğu bozan değişiklikler
- viewModel()artık isteğe bağlı- ViewModelStoreOwnerparametresini kabul ediyor. Bu sayede,- LocalViewModelStoreOwnerdışındaki sahiplerle çalışmak daha kolay hale geliyor. Örneğin, artık belirli bir gezinme grafiğiyle ilişkili bir ViewModel'i almak için- viewModel(navBackStackEntry)kullanabilirsiniz. (I2628d, b/188693123)
Sürüm 1.0.0-alpha06
2 Haziran 2021
androidx.lifecycle:lifecycle-viewmodel-compose:1.0.0-alpha06 iptal edilir. 1.0.0-alpha06 sürümü şu commit'leri içerir.
Compose'un 1.0.0-beta08 sürümüyle uyumlu olacak şekilde güncellendi.
Sürüm 1.0.0-alpha05
18 Mayıs 2021
androidx.lifecycle:lifecycle-viewmodel-compose:1.0.0-alpha05 iptal edilir. 1.0.0-alpha05 sürümü şu commit'leri içerir.
Yeni Özellikler
- Compose'un 1.0.0-beta07sürümüyle uyumlu olacak şekilde güncellendi.
Hata Düzeltmeleri
- ui-test-manifest ve ui-tooling-data'daki AndroidManifest dosyaları artık Android 12 ile uyumlu (I6f9de, b/184718994)
Sürüm 1.0.0-alpha04
7 Nisan 2021
androidx.lifecycle:lifecycle-viewmodel-compose:1.0.0-alpha04 iptal edilir. 1.0.0-alpha04 sürümü şu commit'leri içerir.
Bağımlılık Değişiklikleri
- Bu sürüm, androidx.hilt:hilt-navigation-composeveandroidx.navigation:navigation-compose'ninandroidx.compose.compiler:compiler:1.0.0-beta04veandroidx.compose.runtime:runtime:1.0.0-beta04'deki bağımlılıkları senkronize etmesine olanak tanır. 1.0.0 sürümünde derleyici ve çalışma zamanının eşleşmesi gerekir.
Sürüm 1.0.0-alpha03
10 Mart 2021
androidx.lifecycle:lifecycle-viewmodel-compose:1.0.0-alpha03 iptal edilir. 1.0.0-alpha03 sürümü şu commit'leri içerir.
API Değişiklikleri
- LocalViewModelStoreOwner.currentartık- ViewModelStoreOwnerdeğerinin mevcut kompozisyonda kullanılabilir olup olmadığını daha iyi belirlemek için null değer döndürüyor.- ViewModelStoreOwner- ViewModelStoreOwnergerektiren API'ler (ör.- viewModel()ve- NavHost)- ViewModelStoreOwnerayarlanmamışsa yine de istisna oluşturur. (Idf39a)
Lifecycle-Viewmodel-Compose Sürüm 1.0.0-alpha02
24 Şubat 2021
androidx.lifecycle:lifecycle-viewmodel-compose:1.0.0-alpha02 iptal edilir. 1.0.0-alpha02 sürümü şu commit'leri içerir.
API Değişiklikleri
- LocalViewModelStoreOwnerartık- asProvidableCompositionLocal()API'nin yerini alan ve- CompositionLocalProviderile kullanılabilen- providesişlevlerine sahip. (I45d24)
Lifecycle-Viewmodel-Compose 1.0.0-alpha01 sürümü
10 Şubat 2021
androidx.lifecycle:lifecycle-viewmodel-compose:1.0.0-alpha01 iptal edilir. 1.0.0-alpha01 sürümü şu commit'leri içerir.
Yeni Özellikler
- viewModel()composable'ı ve- LocalViewModelStoreOwner,- androidx.lifecycle.viewmodel.composepaketindeki- androidx.compose.ui.viewinteropöğesinden bu yapıya taşındı. (I7a374)
Sürüm 2.3.1
Yaşam Döngüsü Sürüm 2.3.1
24 Mart 2021
androidx.lifecycle:lifecycle-*:2.3.1 iptal edilir. 2.3.1 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
- NonNullableMutableLiveDatalint kuralı artık farklı boş değerlere sahip alan değişkenleri arasında doğru şekilde ayrım yapabilir. (b/169249668)
Sürüm 2.3.0
Sürüm 2.3.0
10 Şubat 2021
androidx.lifecycle:lifecycle-*:2.3.0 iptal edilir. 2.3.0 sürümü şu commit'leri içerir.
2.2.0 sürümünden beri yapılan önemli değişiklikler
- Paketlenebilir olmayan sınıflar için SavedStateHandledesteği:SavedStateHandleartık belirli bir anahtar içinsetSavedStateProvider()'ı çağırmanıza izin vererek tembel serileştirmeyi destekliyor. Bu sayede,SavedStateHandledurumunu kaydetmesi istendiğindesaveState()'a geri çağırma işlemi yapacak birSavedStateProvidersağlanıyor. Paketlenebilir olmayan sınıfları kaydetme başlıklı makaleyi inceleyin.
- Yaşam Döngüsü Davranış Yaptırımı:
- LifecycleRegistry artık DESTROYEDdurumunu son durum olarak zorunlu kılıyor.
- LifecycleRegistryartık yöntemlerinin ana iş parçacığında çağrıldığını doğruluyor. Etkinliklerin, parçaların vb. yaşam döngüleri için her zaman gerekliydi. Ana olmayan iş parçacıklarından gözlemcilerin eklenmesi, çalışma zamanında yakalanması zor kilitlenmelere neden oluyordu. Kendi bileşenlerinize ait olan- LifecycleRegistrynesneleri için- LifecycleRegistry.createUnsafe(...)kullanarak kontrolleri açıkça devre dışı bırakabilirsiniz. Ancak bu- LifecycleRegistrynesnesine farklı iş parçacıklarından erişildiğinde uygun bir senkronizasyonun yapıldığından emin olmanız gerekir.
 
- LifecycleRegistry artık 
- Yaşam Döngüsü Durumu ve Etkinlik Yardımcıları: Stateve geçiş yönü verildiğindeEventoluşturmak içinLifecycle.Event'yedownFrom(State),downTo(State),upFrom(State),upTo(State)statik yardımcı yöntemleri eklendi. Lifecycle'ınEventişleminden hemen sonra geçiş yapacağıStatedeğerini sağlayangetTargetState()yöntemi eklendi.
- withStateAtLeast: Bir yaşam döngüsü durumu bekleyen ve durum değişikliği noktasında eşzamanlı olarak askıya alınmayan bir kod bloğunu çalıştıran, ardından sonuçla devam eden- Lifecycle.withStateAtLeastAPI'leri eklendi. Bu API'ler, askıya alma kodunun çalıştırılmasına izin vermemeleri ve özel bir dağıtıcı kullanmamaları nedeniyle mevcut- when*yöntemlerinden farklıdır. (aosp/1326081)
- ViewTreeAPI'ler: Yeni bir- ViewTreeLifecycleOwner.get(View)ve- ViewTreeViewModelStoreOwner.get(View)API'si, bir- Viewörneği verildiğinde sırasıyla- LifecycleOwnerve- ViewModelStoreOwneriçerenleri almanıza olanak tanır. Bunu doğru şekilde doldurmak için Activity- 1.2.0, Fragment- 1.3.0ve AppCompat 1.3.0-alpha01 veya sonraki sürümlere yükseltmeniz gerekir.- findViewTreeLifecycleOwnerve- findViewTreeViewModelStoreOwnerKotlin uzantıları sırasıyla- lifecycle-runtime-ktxve- lifecycle-viewmodel-ktx'de kullanılabilir.
- LiveData.observe()Kotlin uzantısının desteği sonlandırıldı: Lambda söz dizimini kullanmak için gerekli olan- LiveData.observe()Kotlin uzantısının desteği, Kotlin 1.4 kullanılırken gerekli olmadığı için sonlandırıldı.
Sürüm 2.3.0-rc01
16 Aralık 2020
androidx.lifecycle:lifecycle-*:2.3.0-rc01 iptal edilir. 2.3.0-rc01 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
- keys()- SavedStateHandleyöntemi, durum kaydedilmeden önce ve sonra tutarlı hale geldi. Artık- set()ve- getLiveData()ile kullanılan anahtarlara ek olarak daha önce- setSavedStateProvider()ile kullanılan anahtarları da içeriyor. (aosp/1517919, b/174713653)
Harici Katkı (External Contribution)
- Yaşam döngüsüne duyarlı eş yordamları askıya alma API'leri artık yield()çağrılarını daha iyi işliyor. Nicklas Ansman Giertz'e teşekkür ederiz. (aosp/1430830, b/168777346)
Sürüm 2.3.0-beta01
1 Ekim 2020
androidx.lifecycle:lifecycle-*:2.3.0-beta01 iptal edilir. 2.3.0-beta01 sürümü şu commit'leri içerir.
API Değişiklikleri
- Lambda söz dizimini kullanmak için gerekli olan LiveData.observe()Kotlin uzantısı artık Kotlin 1.4'te gerekli olmadığından kullanımdan kaldırıldı. (I40d3f)
Hata Düzeltmeleri
- Kotlin 1.4'ü kullanmak için androidx'i yükseltin (Id6471, b/165307851, b/165300826)
Belgelerdeki Değişiklikler
- liveDataoluşturucu ve- asLiveData()dokümanları, verilen zaman aşımı değerlerinin değiştirilmesiyle ilgili ayrıntıları içerecek şekilde güncellendi. (aosp/1122324)
Sürüm 2.3.0-alpha07
19 Ağustos 2020
androidx.lifecycle:lifecycle-*:2.3.0-alpha07 iptal edilir. 2.3.0-alpha07 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
- NullSafeMutableLiveDataLint kontrolünde kilitlenme sorunu düzeltildi. (aosp/1395367)
Sürüm 2.3.0-alpha06
22 Temmuz 2020
androidx.lifecycle:lifecycle-*:2.3.0-alpha06 iptal edilir. 2.3.0-alpha06 sürümü şu commit'leri içerir.
Yeni Özellikler
- downFrom(State),- downTo(State),- upFrom(State),- upTo(State)statik yardımcı yöntemleri,- Stateve geçiş yönü verildiğinde- Eventoluşturmak için- Lifecycle.Event'ye eklendi. Lifecycle'ın- Eventişleminden hemen sonra geçiş yapacağı- Statedeğerini sağlayan- getTargetState()yöntemi eklendi. (I00887)
- Bir yaşam döngüsü durumunu bekleyen, durum değişikliği sırasında askıya alınmayan bir kod bloğunu eşzamanlı olarak çalıştıran ve ardından sonuçla devam eden Lifecycle.withStateAtLeastAPI'leri eklendi. Bu API'ler, askıya alma kodunun çalıştırılmasına izin vermemeleri ve özel bir dağıtıcı kullanmamaları nedeniyle mevcutwhen*yöntemlerinden farklıdır. (aosp/1326081)
Davranış Değişiklikleri
- LifecycleRegistry artık DESTROYEDdurumunu son durum olarak zorunlu kılıyor. (I00887)
- LifecycleRegistryartık yöntemlerinin ana iş parçacığında çağrıldığını doğruluyor. Etkinliklerin, parçaların vb. yaşam döngüleri için her zaman gerekliydi. Ana olmayan iş parçacıklarından gözlemcilerin eklenmesi, çalışma zamanında yakalanması zor kilitlenmelere neden oluyordu. Kendi bileşenlerinize ait- LifecycleRegistrynesneleri için- LifecycleRegistry.createUnsafe(...)kullanarak kontrolleri açıkça devre dışı bırakabilirsiniz. Ancak bu durumda, bu- LifecycleRegistrynesnesine farklı iş parçacıklarından erişildiğinde uygun bir senkronizasyonun yapıldığından emin olmanız gerekir (Ie7280, b/137392809).
Hata Düzeltmeleri
- NullSafeMutableLiveDatauygulamasındaki kilitlenme sorunu düzeltildi. (b/159987480)
- ObsoleteLintCustomCheckile birlikte gelen hata analizi kontrolleri (özellikle- NullSafeMutableLiveData) için- lifecycle-livedata-core-ktxdüzeltildi. (b/158699265)
Sürüm 2.3.0-alpha05
24 Haziran 2020
androidx.lifecycle:lifecycle-*:2.3.0-alpha05 iptal edilir. 2.3.0-alpha05 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
- LiveDataartık yeniden giriş yapılan durumları daha iyi işliyor ve- onActive()veya- onInactive()için yinelenen çağrıları önlüyor. (b/157840298)
- Android Studio 4.1 Canary 6 veya sonraki sürümleri kullanılırken Lint kontrollerinin çalışmamasına neden olan sorun düzeltildi. (aosp/1331903)
Sürüm 2.3.0-alpha04
10 Haziran 2020
androidx.lifecycle:lifecycle-*:2.3.0-alpha04 iptal edilir. 2.3.0-alpha04 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
- NonNullableMutableLiveDataHata analizi kontrolündeki kilitlenme sorunu düzeltildi. (b/157294666)
- NonNullableMutableLiveDataLint kontrolü artık, boş olmayan tür parametresine sahip bir- MutableLiveDataüzerinde- nulldeğeri ayarlanmış olan çok daha fazla durumu kapsıyor. (b/156002218)
Sürüm 2.3.0-alpha03
20 Mayıs 2020
androidx.lifecycle:lifecycle-*:2.3.0-alpha03 yayınlanır. 2.3.0-alpha03 sürümü şu commit'leri içerir.
Yeni Özellikler
- SavedStateHandleartık belirli bir anahtar için- setSavedStateProvider()işlevini çağırmanıza olanak tanıyarak tembel serileştirmeyi destekliyor. Bu işlev,- SavedStateHandledurumunu kaydetmesi istendiğinde- saveState()işlevine geri çağırma işlemi yapacak bir- SavedStateProvidersağlıyor. (b/155106862)
- Yeni ViewTreeViewModelStoreOwner.get(View)API'si,Viewörneği verildiğinde kapsayanViewModelStoreOwneröğ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.lifecycle-viewmodel-ktx'yefindViewModelStoreOwner()Kotlin uzantısı eklendi. (aosp/1295522)
Hata Düzeltmeleri
- MutableLiveDataLint kontrollerinin, Lifecycle- 2.3.0-alpha01'da yayınlanmasına ve- lifecycle-livedata-core-ktxyapısıyla birlikte yayınlanmasına neden olan sorun düzeltildi. (b/155323109)
Sürüm 2.3.0-alpha02
29 Nisan 2020
androidx.lifecycle:lifecycle-*:2.3.0-alpha02 iptal edilir. 2.3.0-alpha02 sürümü şu commit'leri içerir.
API Değişiklikleri
- SavedStateViewModelFactoryartık kolayca kullanılamayan ve- AndroidViewModeldesteğine ihtiyaç duyulmayan durumları daha iyi desteklemek için oluşturucusuna boş- Applicationiletmenize olanak tanıyor. (aosp/1285740)
Hata Düzeltmeleri
- API düzeyi 28 ve daha düşük olan cihazlarda sınıf doğrulama hatasını önleyerek baştan başlatma performansını iyileştirir. (aosp/1282118)
Sürüm 2.3.0-alpha01
4 Mart 2020
androidx.lifecycle:lifecycle-*:2.3.0-alpha01 iptal edilir. 2.3.0-alpha01 sürümü şu commit'leri içerir.
Yeni Özellikler
- Yeni ViewTreeLifecycleOwner.get(View)API'si,Viewörneği verildiğinde kapsayanLifecycleOwneröğesini almanıza olanak tanır. Bu alanı doğru şekilde doldurmak için Activity1.2.0-alpha01ve Fragment1.3.0-alpha01'a yükseltmeniz gerekir.findViewTreeLifecycleOwnerKotlin uzantısılifecycle-runtime-ktx'da kullanılabilir. (aosp/1182361, aosp/1182956)
- Kotlin'de null olmayan olarak tanımlanmış bir MutableLiveDataüzerindenulldeğeri ayarlarken sizi uyaran yeni bir Lint kontrolü eklendi. Bu özellik,livedata-core-ktxveyalivedata-ktxyapıtları kullanılırken kullanılabilir. (aosp/1154723, aosp/1159092)
- lifecycle-runtime-testinguygulayan ve iş parçacığı açısından güvenli değiştirilebilir- Lifecyclesağlayan bir- TestLifecycleOwnersağlayan yeni bir- lifecycle-runtime-testingyapısı kullanıma sunuldu.- LifecycleOwner(aosp/1242438)
Hata düzeltmeleri
- lifecycle-runtimeyapay nesnesi artık benzersiz bir paket adına sahip. (aosp/1187196)
Sürüm 2.2.0
ViewModel-Savedstate 2.2.0 sürümü
5 Şubat 2020
androidx.lifecycle:lifecycle-viewmodel-savedstate:2.2.0 iptal edilir.  2.2.0 sürümü şu commit'leri içerir.
Lifecycle ViewModel SavedState artık diğer Lifecycle yapay ürünleriyle aynı sürümü paylaşıyor. 2.2.0 davranış biçimi, 1.0.0 davranış biçimiyle aynıdır.
Sürüm 2.2.0
22 Ocak 2020
androidx.lifecycle:lifecycle-*:2.2.0 iptal edilir.  2.2.0 sürümü şu commit'leri içerir.
2.1.0 sürümünden beri yapılan önemli değişiklikler
- Yaşam Döngüsü Eşrutin Entegrasyonu: Yeni lifecycle-runtime-ktxyapısı, Yaşam Döngüsü ile Kotlin eşrutinleri arasında entegrasyon sağlar.lifecycle-livedata-ktx, eş yordamlardan yararlanmak için de genişletildi. Daha fazla bilgi için Kotlin eşyordamlarını mimari bileşenlerle kullanma başlıklı makaleye bakın.
- ViewModelProviders.of()desteğinin sonlandırılması:- ViewModelProviders.of()desteği sonlandırıldı. Fragment- 1.2.0kullanırken aynı işlevi elde etmek için yeni- ViewModelProvider(ViewModelStoreOwner)oluşturucusuna- Fragmentveya- FragmentActivityiletebilirsiniz.
- lifecycle-extensionsYapılandırma Deprecation'ı: Yukarıda belirtilen- ViewModelProviders.of()deprecation'ı ile bu sürüm,- lifecycle-extensionsiçindeki son API'nin deprecation'ını işaret ediyor. Bu yapılandırma artık tamamen onaylanmamış olarak kabul edilmelidir.- lifecycle-extensions'in gelecekte- 2.3.0sürümü olmayacağından,- lifecycle-extensionsyerine ihtiyacınız olan belirli Yaşam Döngüsü yapılarına (ör.- LifecycleServicekullanıyorsanız- lifecycle-service,- ProcessLifecycleOwnerkullanıyorsanız- lifecycle-process) bağlı kalmanızı önemle tavsiye ederiz.
- Gradle Artımlı Ek Açıklama İşleyicisi: Lifecycle'ın ek açıklama işleyicisi varsayılan olarak artımlıdır.
Uygulamanız Java 8 programlama dilinde yazılmışsa DefautLifecycleObserver, Java 7 programlama dilinde yazılmışsaLifecycleEventObserverkullanabilirsiniz.
Sürüm 2.2.0-rc03
4 Aralık 2019
androidx.lifecycle:lifecycle-*:2.2.0-rc03 iptal edilir.  2.2.0-rc03 sürümü şu commit'leri içerir.
Hata düzeltmeleri
- ViewModeltaklidi- ViewModelStoreiçinde depolanıp daha sonra varsayılan fabrika ile sorgulandığında oluşan hata düzeltildi.
- Dispatchers.Main.immediatekullanımını, ilgili yaşam döngüsü etkinliği sırasında eşzamanlı olarak çağrılacak şekilde- launchWhenCreatedve benzer yöntemlerde düzeltin. (aosp/1156203)
Harici katkılar
- Düzeltmeye katkıda bulunan Anders Järleberg'e teşekkür ederiz. (aosp/1156203)
- Satır içi yürütme uygulamasını incelediği için Jetbrains'ten Vsevolod Tolstopyatov'a teşekkür ederiz.
Bağımlılık değişiklikleri
- Lifecycle Extensions artık Fragment 1.2.0-rc03'a bağlıdır.
Sürüm 2.2.0-rc02
7 Kasım 2019
androidx.lifecycle:lifecycle-*:2.2.0-rc02 iptal edilir.  2.2.0-rc02 sürümü şu commit'leri içerir.
Hata düzeltmeleri
- Kitaplığın ProGuard kurulumunda, hedef API 29'dan düşükse API 28 ve sonraki sürümleri çalıştıran cihazları etkileyen bir hata düzeltildi. (b/142778206)
Sürüm 2.2.0-rc01
23 Ekim 2019
androidx.lifecycle:lifecycle-*:2.2.0-rc01 iptal edilir.  2.2.0-rc01 sürümü şu commit'leri içerir.
Hata düzeltmeleri
- launchWhenCreatedve ilgili yöntemlerin,- Dispatchers.Main.immediateyerine- Dispatchers.Mainkullanması nedeniyle ilişkili yaşam döngüsü yönteminden bir kare sonra çalışmasına neden olan sorun düzeltildi. (aosp/1145596)
Harici katkılar
- Düzeltmeye katkıda bulunan Nicklas Ansman'a teşekkür ederiz. (aosp/1145596)
Sürüm 2.2.0-beta01
9 Ekim 2019
androidx.lifecycle:lifecycle-*:2.2.0-beta01 iptal edilir.  2.2.0-beta01 sürümü şu commit'leri içerir.
Hata düzeltmeleri
- Lifecycle 2.2.0-alpha05'te ProcessLifecycleOwnersıralamasında ve etkinliğin Android 10 cihazlarda başlatılmış ve devam ettirilmiş olarak taşınmasında ortaya çıkan regresyon düzeltildi.LifecycleOwner(aosp/1128132)
- lifecycle-process'nın- 2.0.0veya- 2.1.0sürümü kullanılırken- NullPointerException'ye neden olan, Lifecycle- 2.2.0-alpha05'da ortaya çıkan gerileme düzeltildi. (b/141536990)
Sürüm 2.2.0-alpha05
18 Eylül 2019
androidx.lifecycle:lifecycle-*:2.2.0-alpha05 iptal edilir.  2.2.0-alpha05 sürümü şu commit'leri içerir.
Hata düzeltmeleri
- Coroutine livedata builder'daki yarış durumu düzeltildi. b/140249349
Sürüm 2.2.0-alpha04
5 Eylül 2019
androidx.lifecycle:lifecycle-*:2.2.0-alpha04 iptal edilir.  Bu sürüme dahil edilen commit'leri burada bulabilirsiniz.
Yeni özellikler
- lifecycleScope,- whenCreated,- whenStarted,- whenResumed,- viewModelScopeve- liveData'ın temel uygulaması artık- Dispatchers.Mainyerine- Dispatchers.Main.immediatekullanıyor. (b/139740492)
Harici katkılar
- Dispatchers.Main.immediate'a taşınma konusunda katkıda bulunan Nicklas Ansman'a teşekkür ederiz. (aosp/1106073)
Sürüm 2.2.0-alpha03
7 Ağustos 2019
androidx.lifecycle:lifecycle-*:2.2.0-alpha03 iptal edilir.  Bu sürüme dahil edilen commit'leri burada bulabilirsiniz.
Yeni özellikler
- ViewModelStoreOwneruygulamaları artık isteğe bağlı olarak- HasDefaultViewModelProviderFactoryuygulayarak varsayılan bir- ViewModelProvider.Factorysağlayabilir. Bu, Etkinlik- 1.1.0-alpha02, Parça- 1.2.0-alpha02ve Gezinme- 2.2.0-alpha01için yapılmıştır. (aosp/1092370, b/135716331)
API değişiklikleri
- ViewModelProviders.of()desteği sonlandırıldı. Aynı işlevselliği elde etmek için yeni- ViewModelProvider(ViewModelStoreOwner)oluşturucusuna- Fragmentveya- FragmentActivityiletebilirsiniz. (aosp/1009889)
Sürüm 2.2.0-alpha02
2 Temmuz 2019
androidx.lifecycle:*:2.2.0-alpha02 iptal edilir.  Bu sürüme dahil edilen commit'leri burada bulabilirsiniz.
API değişiklikleri
- LiveDataScope.initialValueyerine,- liveDatabloğunun mevcut yayınlanan değerini izleyecek olan- LiveDataScope.latestValuekullanıldı.
- liveDataoluşturucusuna,- timeoutparametresini- Durationtüründe alan yeni bir aşırı yükleme eklendi.
Sürüm 2.2.0-alpha01
7 Mayıs 2019
androidx.lifecycle:*:2.2.0-alpha01 iptal edilir.  Bu sürüme dahil edilen commit'leri burada bulabilirsiniz.
Yeni özellikler
- Bu sürümde, Lifecycle ve LiveData için Kotlin eşyordamlarını destekleyen yeni özellikler eklenmiştir. Bunlarla ilgili ayrıntılı belgelere buradan ulaşabilirsiniz.
ViewModel-SavedState 1.0.0 sürümü
Sürüm 1.0.0
22 Ocak 2020
androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0 iptal edilir.  1.0.0 sürümü şu commit'leri içerir.
1.0.0 sürümündeki önemli özellikler
- Yeni SavedStateHandle sınıfı eklendi. Bu izin, ViewModelsınıflarınızın kaydedilmiş duruma erişmesine ve bu duruma katkıda bulunmasına olanak tanır. Bu nesne,ViewModelsınıfının oluşturucusunda alınabilir ve Fragments ile AppCompatActivity tarafından varsayılan olarak sağlanan fabrikalar,SavedStateHandleöğesini otomatik olarak yerleştirir.
- AbstractSavedStateViewModelFactory eklendi. ViewModeliçin özel fabrikalar oluşturmanıza ve bu fabrikalaraSavedStateHandleerişimi vermenize olanak tanır.
ViewModel-Savedstate 1.0.0-rc03 sürümü
4 Aralık 2019
androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0-rc03 iptal edilir.  1.0.0-rc03 sürümü şu commit'leri içerir.
Bağımlılık değişiklikleri
- Lifecycle ViewModel SavedState artık Lifecycle 2.2.0-rc03'a bağlı.
Viewmodel-Savedstate Version 1.0.0-rc02
7 Kasım 2019
androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0-rc02 iptal edilir.  1.0.0-rc02 sürümü şu commit'leri içerir.
Bağımlılık değişiklikleri
- Artık yaşam döngüsüne 2.2.0-rc02bağlıdır.
ViewModel-SavedState Version 1.0.0-rc01
23 Ekim 2019
androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0-rc01, 1.0.0-beta01 sürümünde herhangi bir değişiklik yapılmadan yayınlanır.  1.0.0-rc01 sürümü şu commit'leri içerir.
ViewModel-Savedstate 1.0.0-beta01 sürümü
9 Ekim 2019
androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0-beta01 iptal edilir.  1.0.0-beta01 sürümü şu commit'leri içerir.
Hata düzeltmeleri
- Activity.onActivityResult()içinde bir SavedState ViewModel'e ilk kez erişmenin- IllegalStateExceptionile sonuçlanmasına neden olan sorun düzeltildi. (b/139093676)
- AbstractSavedStateViewModelFactorykullanılırken yaşanan- IllegalStateExceptionsorunu düzeltildi. (b/141225984)
ViewModel-SavedState Version 1.0.0-alpha05
18 Eylül 2019
androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0-alpha05 iptal edilir.  1.0.0-alpha05 sürümü şu commit'leri içerir.
API değişiklikleri
- SavedStateViewModelFactoryartık genişletilmiyor- AbstractSavedStateViewModelFactoryve- SavedStateHandleyalnızca bunu isteyen ViewModel'ler için oluşturuluyor (aosp/1113593)
ViewModel-SavedState Version 1.0.0-alpha03
7 Ağustos 2019
androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0-alpha03 iptal edilir.  Bu sürüme dahil edilen commit'leri burada bulabilirsiniz.
Zarar Veren Değişiklikler
- lifecycle-viewmodel-savedstateartık- fragment'e bağlı değil ve ilgili- SavedStateViewModelFactory(Fragment)ile- SavedStateViewModelFactory(FragmentActivity)oluşturucuları kaldırıldı. Bunun yerine, Activity- 1.1.0-alpha02, Fragment- 1.2.0-alpha02ve Navigation- 2.2.0-alpha01için varsayılan fabrika artık- SavedStateViewModelFactory. (b/135716331)
ViewModel-SavedState 1.0.0-alpha02 sürümü
2 Temmuz 2019
androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0-alpha02 iptal edilir.  Bu sürüme dahil edilen commit'leri burada bulabilirsiniz.
Yeni özellikler
- Varsayılan değeri kabul eden SavedStateHandle.getLiveData()aşırı yüklemesi eklendi.
API Değişiklikleri
- SavedStateVMFactory,- SavedStateViewModelFactoryolarak yeniden adlandırıldı.
- AbstractSavedStateVMFactory,- AbstractSavedStateViewModelFactoryolarak yeniden adlandırıldı.
ViewModel-Savedstate 1.0.0-alpha01 sürümü
13 Mart 2019
androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0-alpha01 iptal edilir.  Bu ilk sürümün tam commit günlüğünü burada bulabilirsiniz.
Yeni özellikler
- Artık ViewModels, savedstate'e katkıda bulunabilir. Bunu yapmak için yeni kullanıma sunulan ViewModel'in factorySavedStateVMFactoryözelliğini kullanırsınız ve ViewModel'inizSavedStateHandleobject parametresini alan bir oluşturucuya sahip olmalıdır.
Sürüm 2.1.0
2.0.0 sürümünden beri yapılan önemli değişiklikler
- Yaşam döngüsü etkinlikleri akışının gerektiği durumlar için LifecycleEventObservereklendi. Gizli birGenericLifecycleObserversınıfı yerine herkese açık bir API'dir.
- LiveData.observeve- Transformations.*yöntemleri için ktx uzantıları eklendi.
- Kaynak LiveDatadeğeri değişene kadar değer yayınlamayan yeni bir LiveData nesnesi oluşturanTransformations.distinctUntilChangedeklendi.
- ViewModel.viewModelScopeuzantı özelliği eklenerek ViewModel'lerde coroutine desteği eklendi.
Sürüm 2.1.0
5 Eylül 2019
androidx.lifecycle:lifecycle-*:2.1.0 iptal edilir.  Bu sürüme dahil edilen commit'leri burada bulabilirsiniz.
Sürüm 2.1.0-rc01
2 Temmuz 2019
androidx.lifecycle:*:2.1.0-rc01, androidx.lifecycle:*:2.1.0-beta01 sürümünde herhangi bir değişiklik yapılmadan yayınlanır.  Bu sürüme dahil edilen commit'leri burada bulabilirsiniz.
Sürüm 2.1.0-beta01
7 Mayıs 2019
androidx.lifecycle:*:2.1.0-beta01 iptal edilir.  Bu sürüme dahil edilen commit'leri burada bulabilirsiniz.
Yeni özellikler
- Yaşam döngüleri beta sürümüne yükseltildi: Önceki alfa sürümlerinde kullanıma sunulan API'ler (ör. liveDatadönüştürme ve gözlem için uzantı işlevleri,ViewModelözellik temsilcisiyle başlatma) kararlı hale getirildi ve değiştirilmeyecek.
Sürüm 2.1.0-alpha04
3 Nisan 2019
androidx.lifecycle:*:2.1.0-alpha04 iptal edilir.  Bu sürüme dahil edilen commit'leri burada bulabilirsiniz.
API değişiklikleri
- Önemli değişiklik: by viewModels()veby activityViewModels()işlevlerinin temelindeki API, doğrudanViewModelStore'yi destekleyecek şekilde değiştirildi. Artık yalnızcaViewModelStoreOwnerdesteklenmiyor. (aosp/932932)
Sürüm 2.1.0-alpha03
13 Mart 2019
androidx.lifecycle:*:2.1.0-alpha03 iptal edilir.  Bu sürüme dahil edilen tüm commit'lerin listesini burada bulabilirsiniz.
API değişiklikleri
- ViewModelProvider.KeyedFactorykaldırıldı.- ViewModelProvider.Factory'a ek olarak ikinci arayüz, Kotlin'de mülk temsilciliği- by viewmodels {}gibi yeni özelliklerle iyi çalışmıyordu. (aosp/914133)
Sürüm 2.1.0-alpha02
30 Ocak 2019
androidx.lifecycle 2.1.0-alpha02 iptal edilir.
API değişiklikleri
- LifecycleRegistryartık desteği sonlandırılan- setState()yönteminin yerini alan bir- setCurrentState()yöntemi içeriyor. (aosp/880715)
Hata düzeltmeleri
- Kapsayan ViewModelStoretemizlendiğinde sahteViewModelörneklerinin kilitlenmesine neden olan sorun düzeltildi. b/122273087
Sürüm 2.1.0-alpha01
17 Aralık 2018
androidx.lifecycle 2.1.0-alpha01 iptal edilir.
Yeni özellikler
- Yaşam döngüsü etkinlikleri akışının gerektiği durumlar için LifecycleEventObservereklendi. Gizli birGenericLifecycleObserversınıfı yerine herkese açık bir API'dir.
- LiveData.observeve- Transformations.*yöntemleri için ktx uzantıları eklendi.
- Transformations.distinctUntilChangedyöntemi eklendi. Kaynak LiveData değeri değişene kadar değer yaymayan yeni bir- LiveDatanesnesi oluşturur.
- ViewModel'lerde Coroutine desteği: ViewModel.viewModelScopeuzantı özelliği eklendi.
- ViewModelProvider.KeyedFactoryeklendi. Bu,- createyönteminde- keyve- Classalan ViewModel'ler için bir fabrikadır.
Sürüm 2.0.0
Sürüm 2.0.0
21 Eylül 2018
ViewModel'de 2.0.0-rc01 tarafından bir hata düzeltmesiyle Lifecycle 2.0.0 yayınlandı.
Hata Düzeltmeleri
- Yapıcıları yanlışlıkla kaldıran ViewModel proguard kuralı düzeltildi. b/112230489
Sürüm 2.0.0-beta01
2 Temmuz 2018
Hata Düzeltmeleri
- Yalnızca uygulamaları tutmak için LifecycleObserver proguard kuralı düzeltildi, alt arayüzler tutulmuyor b/71389427
- Karartma ve küçültmeye izin vermek için ViewModel proguard kuralları düzeltildi.
AndroidX öncesi sürümler
Aşağıdaki Lifecycle'ın AndroidX öncesi sürümleri için şu bağımlılıkları ekleyin:
dependencies {
    def lifecycle_version = "1.1.1"
    // ViewModel and LiveData
    implementation "android.arch.lifecycle:extensions:$lifecycle_version"
    // alternatively - just ViewModel
    implementation "android.arch.lifecycle:viewmodel:$lifecycle_version" // For Kotlin use viewmodel-ktx
    // alternatively - just LiveData
    implementation "android.arch.lifecycle:livedata:$lifecycle_version"
    // alternatively - Lifecycles only (no ViewModel or LiveData).
    //     Support library depends on this lightweight import
    implementation "android.arch.lifecycle:runtime:$lifecycle_version"
    annotationProcessor "android.arch.lifecycle:compiler:$lifecycle_version" // For Kotlin use kapt instead of annotationProcessor
    // alternately - if using Java8, use the following instead of compiler
    implementation "android.arch.lifecycle:common-java8:$lifecycle_version"
    // optional - ReactiveStreams support for LiveData
    implementation "android.arch.lifecycle:reactivestreams:$lifecycle_version"
    // optional - Test helpers for LiveData
    testImplementation "android.arch.core:core-testing:$lifecycle_version"
}
Sürüm 1.1.1
21 Mart 2018
Yalnızca küçük bir değişiklik yapıldı: android.arch.core.util.Function, arch:runtime konumundan arch:common konumuna taşındı. Bu sayede, çalışma zamanı bağımlılığı olmadan (ör. aşağıdaki paging:common içinde) kullanılabilir.
lifecycle:common, lifecycle:runtime öğesinin bağımlısı olduğundan bu değişiklik, lifecycle:runtime öğesini doğrudan etkilemez. Yalnızca Paging gibi doğrudan lifecycle:common öğesine bağlı olan modüller etkilenir.
Sürüm 1.1.0
22 Ocak 2018
Paketleme Değişiklikleri
Artık çok daha küçük yeni bağımlılıklar kullanılabilir:
- android.arch.lifecycle:livedata:1.1.0
- android.arch.lifecycle:viewmodel:1.1.0
API Değişiklikleri
- Desteği sonlandırılan LifecycleActivityveLifecycleFragmentartık kaldırıldı. LütfenFragmentActivity,AppCompatActivityveya destekFragmentkullanın.
- @NonNullek açıklaması,- ViewModelProvidersve- ViewModelStoresöğelerine eklendi
- ViewModelProvidersoluşturucusunun desteği sonlandırıldı. Lütfen statik yöntemlerini doğrudan kullanın.
- ViewModelProviders.DefaultFactorydesteği sonlandırıldı. Lütfen- ViewModelProvider.AndroidViewModelFactorykullanın.
- ViewModelProvider.AndroidViewModelFactory.getInstance(Application)yöntemi,- ViewModelve- AndroidViewModelörnekleri oluşturmaya uygun statik- Factorydeğerini almak için eklenmiştir.
