Yaşam döngüsü

Yaşam döngüsü bilincine sahip bileşenler, etkinlikler ve parçalar gibi başka bir bileşenin yaşam döngüsü durumundaki bir değişikliğe yanıt olarak işlemler gerçekleştirir. Bu bileşenler, daha iyi düzenlenmiş ve genellikle daha hafif, bakımı daha kolay kodlar oluşturmanıza yardımcı olur.

Bu tabloda, androidx.lifecycle grubundaki tüm yapı taşları listelenir.

Yapı Kararlı Sürüm Yayın Adayı Beta Sürümü Alfa Sürümü
lifecycle-* 2,8,7 - - 2.9.0-alfa06
lifecycle-viewmodel-compose 2,8,7 - - 2.9.0-alpha06
Bu kitaplık en son 30 Ekim 2024'te güncellenmiştir.

Bağımlılıkları beyan etme

Yaşam döngüsüne bir bağımlılık eklemek için projenize Google Maven deposunu eklemeniz gerekir. Daha fazla bilgi için Google'ın Maven deposunu inceleyin.

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

Kotlin

Groovy

    dependencies {
        def lifecycle_version = "2.8.7"
        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"

        // 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.8.7"
        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")

        // 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.8.7"
        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.8.7"
        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 bize bildirin. Yeni bir kitaplık oluşturmadan önce lütfen bu kitaplıktaki mevcut sorunlara göz atın. Yıldız düğmesini tıklayarak mevcut bir soruna oy verebilirsiniz.

Yeni sorun oluşturma

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

Sürüm 2.9

Sürüm 2.9.0-alpha06

30 Ekim 2024

androidx.lifecycle:lifecycle-*:2.9.0-alpha06 yayınlandı. 2.9.0-alpha06 sürümü bu taahhütleri içerir.

Davranış Değişiklikleri

  • Lifecycle.DESTROYED durumu sonlandırıcıdır ve bir Lifecycle'ı bu durumdan başka bir duruma taşıma girişimi artık IllegalStateException ile sonuçlanacaktır. (I116c4, b/370577987)
  • SavedStateHandle artık döndürülen Bundle değerinin boş olduğu SavedStateProvider.saveState() öğelerini içermiyor. (I910b5, b/370577987)

Hata Düzeltmeleri

  • Lifecycle.eventFlow, Lifecycle DESTROYED olduğ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, önemli bir değişiklik içermeden yayınlandı. 2.9.0-alpha05 sürümü bu taahhütleri içerir.

Sürüm 2.9.0-alpha04

2 Ekim 2024

androidx.lifecycle:lifecycle-*:2.9.0-alpha04 yayınlanır. 2.9.0-alpha04 sürümü bu taahhütleri içerir.

Kotlin Çok Platformlu

  • lifecycle-viewmodel-savedstate modülü, SavedStateHandle gibi API'lerin gelecekteki bir sürümde ortak kaynak grubunda kullanıma sunulmasına hazırlanmak için KMP 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 yayınlanır. 2.9.0-alpha03 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

Bağımlılık Güncellemeleri

Sürüm 2.9.0-alpha02

4 Eylül 2024

androidx.lifecycle:lifecycle-*:2.9.0-alpha02 yayınlanır. Sürüm 2.9.0-alpha02 bu kaydetmeleri içerir.

Hata Düzeltmeleri

Harici Katkı

  • androidx.compose.ui.platform.LocalLifecycleOwner öğesini ortak kaynak kümesine (KMP) taşıyın. Katkıları için JetBrains'den Ivan Matkov'a teşekkür ediyoruz. (8cd5d03)
  • Yaşam döngüsü 2.8.5: SavedStateHandle.saveable` uzantı temsilcisi artık null değerleri destekler. Katkıda bulunduğunuz için teşekkürler Roman Kalukiewicz. (0d78ea6)

Sürüm 2.9.0-alpha01

7 Ağustos 2024

androidx.lifecycle:lifecycle-*:2.9.0-alpha01 yayınlanır. 2.9.0-alpha01 sürümü bu taahhütleri içerir.

Kotlin Çok Platformlu

  • lifecycle-testing artık KMP ile uyumlu. (Iea41e)
  • linuxArm64 kotlin çok platformlu hedefi için destek ekleme (I139d3, b/338268719)

Yeni Özellikler

  • ViewModel'leri tek başına test etmek için onCleared (tüm platformlar) ve SavedStateHandle (yalnızca Android) desteğiyle ViewModelScenario sınıfı sağlayan yeni bir androidx.lifecycle:lifecycle-viewmodel-testing KMP yapısını kullanabilirsiniz. (337f68d, c9b3409, 9799a95c, b/264602919)
  • ViewModelProvider ile ViewModel oluşturma işlemi artık iş parçacığı açısından güvenlidir; @MainThread ek açıklamaları kaldırıldı. (Ifd978, b/237006831)

API Değişiklikleri

  • Anonim CreationExtras.Key nesnelerinin oluşturulmasını basitleştirmek için CreationExtras.Key() fabrika işlevini ekleyin. (I970ee)
  • CreationExtras artık Kotlin'de içeriklerin yerel dilde değiştirilmesini sağlamak için haritaya benzer operatör aşırı yüklemelerini içeriyor. in, += ve +'nin CreationExtras ile kullanılmasına olanak tanır. (Ib4353)
  • CreationExtras artık equals, hashCode ve toString yöntemlerini uygulamaktadır. (Ib4353)
  • NewInstanceFactory artık JVM Masaüstü ve Android hedeflerinde kullanılabilir. (d3d0892)
  • Temel Uygulamayı Kotlin dili 2.0 sürümünde (I39df2) güvenli bir şekilde göstermek için satır içi uzantı özelliği

Hata Düzeltmeleri

  • Bu durum, AGP 7.3 veya sonraki bir sürümle R8 kullanılırken (ör. R8 sürüm 3.3) ve AGP 8.1 veya sonraki sürümler kullanılırken tüm derlemeler (ör. D8 sürümü 8.1) için API modellemesi aracılığıyla otomatik olarak gerçekleştirildiğinden, yeni platform API'lerine erişimin manuel olarak özetlenmesi kaldırıldı. AGP kullanmayan müşterilerin D8 8.1 veya sonraki bir sürüme güncellemeleri önerilir. Daha fazla bilgi için bu makaleyi inceleyin. (If6b4c, b/345472586)

Sürüm 2.8

Sürüm 2.8.7

30 Ekim 2024

androidx.lifecycle:lifecycle-*:2.8.7 yayınlanır. 2.8.7 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • androidx.compose.ui.platform.LocalLifecycleOwner artık ortak kaynak kümesinde (KMP) kullanılabilir. (6a3f5b3)
  • lifecycle-runtime-compose: desktop yapı kaldırıldı ve -jvmStubs ve -linuxx64Stubs yapıları eklendi. Bu hedeflerin hiçbiri kullanılmak için tasarlanmamıştır. Bunlar, Jetbrains Compose çalışmalarına yardımcı olan yer tutuculardır. (6a3f5b3)

2.8.6 sürümü

18 Eylül 2024

androidx.lifecycle:lifecycle-*:2.8.6 yayınlanır. Sürüm 2.8.6 bu taahhütleri içerir.

Hata Düzeltmeleri

  • NullSafeMutableLiveData lint hatası, akıllı yayınlar için desteği iyileştirerek yanlış pozitifleri önledi. (85fed6, b/181042665)

Bağımlılık Güncellemeleri

Sürüm 2.8.5

4 Eylül 2024

androidx.lifecycle:lifecycle-*:2.8.5 yayınlanır. Sürüm 2.8.5 bu taahhütleri içerir.

Hata Düzeltmeleri

  • androidx.lifecycle.ReportFragment ProGuard kurallarını karartmaya izin verecek şekilde güncelleyin . (ff898e1)

Harici Katkı

  • SavedStateHandle.saveable uzantısı için yetki verilmiş kullanıcı artık boş değerleri destekliyor. Katkılarından dolayı Roman Kalukiewicz'e teşekkür ederiz. (0d78ea6)

Sürüm 2.8.4

24 Temmuz 2024

androidx.lifecycle:lifecycle-*:2.8.4 yayınlanır. Sürüm 2.8.4 bu taahhütleri içerir.

Hata Düzeltmeleri

  • LiveData.asFlow() artık döndürülen akışta LiveData üzerinde önceden ayarlanmış bir değer alındıktan hemen sonra akışın tamamlandığı durumları (örneğin, take(1) kullanılırken) doğru şekilde ele alıyor. (I9c566)
  • Lifecycle*Effect tamamlama işlemi artık idempotent (yani, yaşam döngüsü durdurulduğu için onStopOrDispose çağrıldıysa yaşam döngüsü tekrar STARTED durumuna dönmediği sürece, kullanımdan kaldırıldığında ikinci kez çağrılmaz). (I5f607, b/352364595)

Sürüm 2.8.3

1 Temmuz 2024

androidx.lifecycle:lifecycle-*:2.8.3 yayınlanır. 2.8.3 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • Kod küçültme kullanılırken Yaşam Döngüsü 2.8'in Compose 1.6.0 ve önceki sürümleriyle 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 yayınlandı. 2.8.2 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • Lifecycle 2.8.X'in Compose 1.6.X veya önceki sürümlerle kullanılmasıyla ilgili CompositionLocal LocalLifecycleOwner not present hataları düzeltildi. Artık Lifecycle 2.8.2'yi herhangi bir Compose sürümüyle herhangi bir geçici çözüm uygulamadan kullanabilirsiniz. (aosp/3105647, b/336842920)
  • ViewModelProvider, compileOnly yaşam döngüsü bağımlılıkları önceki sürümlerini 2.8 ve sonraki sürümlerle karıştırırken artık kilitlenmeyecek. Böylece LeakCanary gibi kitaplıklarla ilgili sorunlar düzeltildi. (I80383, b/341792251)

Sürüm 2.8.1

29 Mayıs 2024

androidx.lifecycle:lifecycle-*:2.8.1 yayınlanır. Sürüm 2.8.1 bu taahhütleri içerir.

Hata Düzeltmeleri

  • lifecycle-viewmodel-compose artık yalnızca compose-runtime ile ortak bağımlılığa sahiptir. compose-ui ile ortak bağımlılığı kaldırılmıştır. Android yapıları, uyumluluk için compose-ui değerini korur. (aosp/3079334, b/339562627)
  • ViewModel'ın mülk temsilcilerini kullanan saveable entegrasyonu artık otomatik olarak oluşturulan anahtarın bir parçası olarak sınıf adını kullanıyor. Bu sayede, birden fazla sınıf aynı SavedStateHandle'yi kullandığında çakışmalar önleniyor. (aosp/3063463)

Sürüm 2.8.0

14 Mayıs 2024

androidx.lifecycle:lifecycle-*:2.8.0 yayınlanır. 2.8.0 sürümü bu taahhütleri 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ünün dışında kullanılabilmesi için Compose kullanıcı arayüzünden lifecycle-runtime-compose'e taşındı.
  • lifecycle-runtime-compose yapıları artık LifecycleOwner belirli bir Lifecycle.State değerinin altına düştüğünden sonra bile gerçekleşen tıklamaları veya diğer etkinlikleri bırakmanıza olanak tanıyan dropUnlessResumed ve dropUnlessStarted API'lerini içeriyor. Örneğin, başka bir ekrana geçiş başladıktan sonra tıklama etkinliklerini işlemekten kaçınmak için bu yöntem Gezinme Oluşturma ile kullanılabilir: onClick: () -> Unit = dropUnlessResumed { navController.navigate(NEW_SCREEN) }
  • ViewModel.viewModelScope artık geçersiz kılınabilir bir oluşturucu parametresi olduğundan kendi dağıtıcınızı ve SupervisorJob()'ınızı eklemenize veya runTest içinde bulunan backgroundScope'yi kullanarak varsayılan değeri geçersiz kılmanıza olanak tanır. (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 Closeable yerine AutoClosable kullanıyor. Artık AutoCloseable nesnelerini getCloseable() üzerinden almalarını sağlayan bir key ile eklemeyi destekler.

  • LifecycleStartEffect ve LifecycleResumeEffect API'lerinin anahtar olmadan çağrılması artık hata olarak değerlendiriliyor. Bu, bu API'lerin yansıttığı DisposableEffect API'siyle aynı kurala dayanır.

  • LiveDataReactiveStreams.toPublisher(lifecycleOwner, liveData) kullanımdan kaldırıldı ve yerine LiveData.toPublisher(lifecycleOwner).

  • lifecycle-livedata-core-ktx kotlin uzantıları artık lifecycle-livedata-core modülüne taşındı.

  • NullSafeMutableLiveData, birçok yanlış pozitif sonucu önlemek için yeniden düzenlendi.

Yaşam döngüsü Kotlin çok platformlu uyumluluğu

Lifecycle, LifecycleOwner, LifecycleObserver, Lifecycle.State, Lifecycle.Event ve LifecycleRegistry alanlarındaki temel Yaşam Döngüsü API'leri artık Kotlin Multiplatform ile uyumlu yapılarda sunuluyor.

Etkilenen yapıları:

  • lifecycle-common, çoğu API'yi common'e taşır ve Android'e ek olarak jvm ve iOS'i destekler.
  • lifecycle-runtime, çoğu API'yi common ortamına taşır ve Android'in yanı sıra jvm ile iOS'i de destekler.
  • lifecycle-runtime-ktx artık boştur ve tüm API'ler lifecycle-runtime'a taşınmıştır.
  • lifecycle-runtime-compose, tüm API'leri common'e taşır ve androidx.compose'nin çok platformlu desteğine uygun bir Android yapısını dağıtır.

ViewModel Kotlin Çoklu Platform Uyumluluğu

lifecycle-viewmodel yapıları ve ViewModel, ViewModelStore, ViewModelStoreOwner ve ViewModelProvider gibi API'ler artık Kotlin Multiplatform ile uyumlu yapılarda yayınlanıyor.

Bu değişiklikle uyumlu olmak için ViewModelProvider üzerinde java.lang.Class<T> alan yöntemler gibi yöntemler artık kotlin.reflect.KClass<T> alan eşdeğer bir yönteme sahip.

Android'de ikili uyumluluk korunmuştur ancak Android API yüzeyi ile ortak API yüzeyi karşılaştırıldığında birkaç önemli değişiklik vardır:

  • ViewModelProvider örneği oluşturma işlemi artık doğrudan oluşturucunun çağrılması yerine ViewModelProvider.create() yöntemleri aracılığıyla gerçekleştirilir.
  • ViewModelProvider.NewInstanceFactory ve ViewModelProvider.AndroidViewModelFactory yalnızca Android'de kullanılabilir.
    • Özel fabrikaların ViewModelProvider.Factory'ten türemesi ve CreationExtras alan create yöntemini kullanması veya viewModelFactory Kotlin DSL'sini kullanması önerilir.
  • JVM dışı platformlarda özel fabrika olmadan ViewModelProvider kullanılması UnsupportedOperationException ile sonuçlanır. JVM platformlarında, özel bir fabrika sağlanmazsa bağımsız değişkensiz ViewModel oluşturucu kullanılarak uyumluluk korunur.
  • viewModelScope, Dispatchers.Main'nin kullanılamadığı platformlarda (ör.EmptyCoroutineContext Linux).

Etkilenen yapılar:

  • lifecycle-viewmodel, çoğu API'yi common ortamına taşır ve Android'in yanı sıra jvm ile iOS'i de destekler.
  • lifecycle-viewmodel-ktx artık boştur ve tüm API'ler lifecycle-viewmodel'a taşınmıştır.
  • lifecycle-viewmodel-compose, tüm API'leri common'e taşır ve androidx.compose'nin çok platformlu desteğine uygun bir Android yapısını dağıtır.

Davranış Değişiklikleri

  • InitializerViewModelFactory (viewModelFactory oluşturucu işlevi dahil), aynı clazz: KClass<VM : ViewModel> ile bir initializer zaten eklenmişse artık bir IllegalArgumentException oluşturur. (Ic3a36)

Bilinen Sorunlar

Sürüm 2.8.0-rc01

1 Mayıs 2024

androidx.lifecycle:lifecycle-*:2.8.0-rc01 yayınlanır. 2.8.0-rc01 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • lifecycle-common sınıfları için Temel Profil'in düzgün şekilde paketlenmemesine neden olan sorun düzeltildi. Bunlar artık lifecycle-runtime AAR'da paketlenir. (aosp/3038274, b/322382422)
  • Bir ViewModel'e bağlı AutoCloseable örneklerinin nasıl temizleneceğiyle ilgili kasıtsız bir sıralama değişikliği düzeltildi. Önceki sıralama (addCloseable(String, AutoCloseable), ardından addClosable(AutoCloseable), ardından onCleared()) geri yüklendi. (aosp/3041632)
  • Yerel ve JVM masaüstü ortamları için viewModelScope'ün varsayılan oluşturma davranışını iyileştirin. (aosp/3039221)

Harici Katkı

  • Victor Kropp, JVM Masaüstü'ndeki ana iş parçacığının kontrolünü iyileştirdiği için teşekkürler. (aosp/3037116)

Sürüm 2.8.0-beta01

17 Nisan 2024

androidx.lifecycle:lifecycle-*:2.8.0-beta01 yayınlanır. 2.8.0-beta01 sürümü bu taahhütleri içerir.

Yeni Özellikler

  • lifecycle-runtime-compose yapıları artık Kotlin Multiplatform ile uyumlu. Kodu common'a taşındı ve androidx.compose için çok platformlu desteğiyle eşleşen bir Android yapısı yayınlandı. (If7a71, I4f4a0, b/331769623)

Sürüm 2.8.0-alpha04

3 Nisan 2024

androidx.lifecycle:lifecycle-*:2.8.0-alpha04 yayınlandı. Sürüm 2.8.0-alpha04 bu kaydetmeleri içerir.

Yeni Özellikler

  • lifecycle-viewmodel-compose yapıları artık Kotlin Multiplatform ile uyumlu. Kodu common'a taşındı ve androidx.compose'nin çok platformlu desteğine uygun bir Android yapısı yayınlandı. Bu değişikliği karşılamak için Kompozit viewModel yöntemi artık java.lang.Class'ye ek olarak KClass değerini de kabul ediyor. (b/330323282)

Hata Düzeltmeleri

  • NullSafeMutableLiveData, birçok yanlış pozitif sonucu önlemek için yeniden yapılandırıldı. (I2d8c1, Iafb18, I03463, I7ecef)

Bağımlılık güncellemesi

  • lifecycle-viewmodel-compose yapı artık Compose 1.6.0'a bağlıdır.
  • Yaşam döngüsü artık Profil Yükleyici 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 yayınlanır. 2.8.0-alpha03 sürümü bu taahhütleri içerir.

Yeni Özellikler

  • ViewModel.viewModelScope artık geçersiz kılınabilir bir oluşturucu parametresi olduğundan kendi dağıtıcınızı ve SupervisorJob()'ınızı eklemenize veya runTest içinde bulunan backgroundScope'yi kullanarak varsayılan değeri geçersiz kılmanıza olanak tanır. (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 Çok Platformlu Uyumluluk

lifecycle-viewmodel yapısı ile ViewModel, ViewModelStore, ViewModelStoreOwner ve ViewModelProvider gibi API'ler artık Kotlin Multiplatform ile uyumlu yapılarda sunulmaktadır. (b/214568825)

Bu değişikliğe uyum sağlamak için, ViewModelProvider uygulamasında java.lang.Class<T> alan gibi yöntemlerde artık kotlin.reflect.KClass<T> alan eşdeğer bir yöntem bulunmaktadır.

Android'de ikili uyumluluk korunmuştur ancak Android API yüzeyi ile ortak API yüzeyi karşılaştırıldığında birkaç önemli değişiklik vardır:

  • ViewModelProvider örneği oluşturma işlemi artık doğrudan oluşturucunun çağrılması yerine ViewModelProvider.create() yöntemleri aracılığıyla gerçekleştirilir.
  • ViewModelProvider.NewInstanceFactory ve ViewModelProvider.AndroidViewModelFactory yalnızca Android'de kullanılabilir.
    • Özel fabrikaların ViewModelProvider.Factory'ten türemesi ve CreationExtras alan create yöntemini kullanması veya viewModelFactory Kotlin DSL'sini kullanması önerilir.
  • JVM dışı platformlarda özel fabrika olmadan ViewModelProvider kullanılması UnsupportedOperationException ile sonuçlanır. JVM platformlarında, özel bir fabrika sağlanmazsa bağımsız değişkensiz ViewModel oluşturucu kullanılarak uyumluluk korunur.
  • viewModelScope, Dispatchers.Main'nin kullanılamadığı platformlarda (ör.EmptyCoroutineContext Linux).

Davranış Değişiklikleri

  • InitializerViewModelFactory (viewModelFactory oluşturucu işlevi dahil), aynı clazz: KClass<VM : ViewModel> ile bir initializer zaten eklenmişse artık bir IllegalArgumentException oluşturur. (Ic3a36)

Hata Düzeltmeleri

  • ViewModel.getCloseable artık yinelenen anahtarları yönetiyor: key'ın ilişkili bir AutoCloseable kaynağı varsa eski kaynak değiştirilir ve hemen kapatılır. (Ibeb67)
  • ViewModel öğesinin viewModelScope özelliğine erişim artık iş parçacığı açısından güvenlidir. (If4766, b/322407038)

Harici Katkı

  • LocalLifecycleOwner, Compose tabanlı yardımcı API'lerinin Compose kullanıcı arayüzünün dışında kullanılabilmesi için Compose kullanıcı arayüzünden lifecycle-runtime-compose'e taşındı. Katkıda bulunduğunuz için teşekkürler Jake Wharton. (I6c41b, b/328263448)

Sürüm 2.8.0-alpha02

21 Şubat 2024

androidx.lifecycle:lifecycle-*:2.8.0-alpha02 yayınlandı. 2.8.0-alpha02 sürümü bu kaydetmeleri içerir.

Yeni Özellikler

  • LifecycleOwner belirli bir Lifecycle.State değerinin altına düştüğünde bile gerçekleşen tıklama veya diğer etkinlikleri bırakmanıza olanak tanıyan dropUnlessResumed ve dropUnlessStarted API'leri eklendi. Örneğin, başka bir ekrana geçiş başladıktan sonra tıklama etkinliklerini işlemekten kaçınmak için bu yöntem, Gezinme Oluşturma ile kullanılabilir: onClick: () -> Unit = dropUnlessResumed { navController.navigate(NEW_SCREEN) } (Icba83, b/317230685)

Kotlin Dönüşümleri

  • ViewModel artık Kotlin ile yazılmıştır (I16f26, b/214568825)
  • lifecycle-viewmodel-ktx kotlin uzantıları artık temel yaşam döngüsü modülüne taşındı. (Id787b, b/274800183)
  • lifecycle-runtime-ktx kotlin uzantıları artık temel yaşam döngüsü modülüne taşındı. (Ic3686, b/274800183)
  • lifecycle-livedata-core-ktx kotlin uzantısı artık temel yaşam döngüsü modülüne taşındı. (I54a3d, b/274800183)

Kotlin Çok Platformlu Uyumluluk

  • Lifecycle, LifecycleOwner, LifecycleObserver, Lifecycle.State, Lifecycle.Event ve LifecycleRegistry alanlarındaki temel Yaşam Döngüsü API'leri artık Kotlin Multiplatform ile uyumlu yapılarda sunuluyor. (b/317249252)

API Değişiklikleri

  • LifecycleStartEffect ve LifecycleResumeEffect API'lerinin anahtar olmadan çağrılması artık hata olarak değerlendiriliyor. Bu, bu API'lerin yansıttığı DisposableEffect API'siyle aynı kurala dayanır. (Ib0e0c, b/323518079)
  • ViewModel artık Closeable yerine AutoCloseable kullanıyor. Bu değişiklik geriye dönük uyumludur. (I27f8e, b/214568825)
  • LiveDataReactiveStreams.toPublisher(lifecycleOwner, liveData), LiveData.toPublisher(lifecycleOwner) için kullanımdan kaldırıldı. (Iabe29, b/262623005)

Harici Katkı

  • Jetbrains'den Ivan Matkov'a, yaşam döngüsünü Kotlin Multiplatform'a taşımamıza yardımcı olduğu için 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 yayınlandı. 2.8.0-alpha01 sürümü bu taahhütleri içerir.

Yeni Özellikler

  • ViewModel artık getCloseable() üzerinden alınmasına olanak tanıyan bir key ile Closeable nesneleri eklemeyi destekliyor. (I3cf63)

Sürüm 2.7

Sürüm 2.7.0

10 Ocak 2024

androidx.lifecycle:lifecycle-*:2.7.0 yayınlanır. 2.7.0 sürümü bu taahhütleri içerir.

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

  • TestLifecycleOwner artık, durum değişikliğinin ve tüm LifecycleObserver geri çağırmalarının döndürülmeden önce tamamlanmasını sağlayan bir askıya alma işlevi setCurrentState() içeriyor. currentState mülkünün doğrudan ayarlanmasının aksine, bu yöntemde runBlocking kullanılmaz. Bu sayede, runTest tarafından sağlanan bir coroutine gibi bir coroutine içinde güvenli bir şekilde kullanılabilir.
  • map ve switchMap işlevlerinin LiveData uzantıları artık distinctUntilChanged işlevinin davranışını yansıtıyor. LiveData işlevinin value özelliği ayarlanmışsa döndürülen LiveData işlevinin value özelliğini doldurmak için map/switchMap işlevi hemen çağrılır. Bu, ilk değerin ilk bileşimin bir parçası olarak ayarlanmasını sağlar (observeAsState() ile kullanıldığında), ancak gözlem davranışını değiştirmez. LiveData kaynağındaki güncelleme değerleri, yalnızca LiveData'u gözlemlemeye başladıktan sonra uygulanmaya devam eder.
  • Bu sürümde, işlem sona erip yeniden oluşturulduktan sonra SavedStateHandle'ün özel Parcelable sınıflarını düzgün şekilde geri yüklememesi sorunu düzeltildi. Android çerçevesi tarafından kaybedilen tür bilgileri nedeniyle, özel Parcelable dizileri ek çalışma gerektirir (doğru türde bir dizili dizi manuel olarak oluşturulur) ve get, getLiveData ve getStateFlow ile ilgili dokümanlar artık bu sınırlamayı özellikle belirtmektedir.
  • LifecycleObserver ile ilişkili proguard keep kuralları kaldırıldı. Bu, API'leri yansıma yoluyla kullanmak isteyen korumalı kodun (ör. desteği sonlandırılan @OnLifecycleEvent ek açıklamasını kullanarak) belirli kullanım alanı için kendi koruma kurallarını sağlaması gerektiği anlamına gelir.

Yaşam Döngüsü Etkinliği Gözlemlenebilirliği

  • LifecycleEventObserver kullanmaya alternatif olarak artık Lifecycle.asFlow() uzantı yöntemi aracılığıyla Lifecycle.Event için Flow gözlemleyebilirsiniz.
  • Jetpack Compose kullanıcıları artık Lifecycle.Event'a dayalı Compose yan etkilerini çalıştırmak için LifecycleEventEffect kullanabilir.
@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 ile devam ettirilen ve duraklatılan etkinliklerin çiftlerini işlemek için LifecycleStartEffect ve LifecycleResumeEffect kullanabilir. Bu API, DisposableEffect API'sini yansıtır ve durum yükselirken yapılan değişikliğin, durum 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.State, artık value'ın mevcut Lifecycle.State olduğu bir StateFlow döndüren Lifecycle.currentStateFlow mülkü aracılığıyla gözlemlenebilir.
  • Jetpack Compose kullanıcıları, Lifecycle.State'u doğrudan Compose State olarak göstermek için Lifecycle.currentStateAsState() uzantısını kullanabilir. Bu, lifecycle.currentStateFlow.collectAsState() ile eşdeğerdir (ve daha kısa bir alternatiftir).

Daha fazla bilgi için Akışlarla yaşam döngüsü durumunu toplama bölümüne bakın.

Sürüm 2.7.0-rc02

13 Aralık 2023

androidx.lifecycle:lifecycle-*:2.7.0-rc02 yayınlanır. 2.7.0-rc02 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • İşlem sona erip yeniden oluşturulduktan sonra SavedStateHandle'ün özel Parcelable sınıflarını düzgün şekilde geri yüklememesi sorunu düzeltildi. Android çerçevesi tarafından kaybedilen tür bilgileri nedeniyle, özel Parcelable dizileri ek çalışma gerektirir (doğru türde bir dizili dizi manuel olarak oluşturulur) ve get, getLiveData ve getStateFlow ile ilgili dokümanlar artık bu sınırlamayı özellikle belirtmektedir. (I0b55a)

Sürüm 2.7.0-rc01

15 Kasım 2023

androidx.lifecycle:lifecycle-*:2.7.0-rc01 yayınlandı. 2.7.0-rc01 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • LifecycleStartEffect ve LifecycleResumeEffect, LifecycleOwner değiştiğinde 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ü bu taahhütleri içerir.

  • Beta sürümü yükseltilmiş bir sürüm. Bu sürümde büyük bir değişiklik yapılmamıştır.

Sürüm 2.7.0-alpha03

18 Ekim 2023

androidx.lifecycle:lifecycle-*:2.7.0-alpha03 yayınlanır. 2.7.0-alpha03 sürümü bu taahhütleri içerir.

Yeni Özellikler

  • lifecycle-runtime-testing artık bir coroutine içindeyken currentState alanını kullanarak TestLifecycleOwner öğesinin Lifecycle.State değerini ayarlamayı önlemek için yeni bir Lint denetimi içeriyor. Lint denetimi artık setCurrentState'ü askıya almayı öneriyor. Bu sayede Lifecycle.State, engellenmeden ayarlanabilir. (Icf728, b/297880630)

Hata Düzeltmeleri

  • Hem ilk çağrıda hem de sonraki çağrıda aynı LiveData örneğinin döndürülmesinin, LiveData örneğinin kaynak olarak eklenmesini engellediği LiveData.switchMap ile ilgili sorun düzeltildi. (Ibedcba7)

Sürüm 2.7.0-alpha02

6 Eylül 2023

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

Yeni Özellikler

  • TestLifecycleOwner, kullanıcılara runTest tarafından sağlanana benzer bir eş yordam içinden TestLifecycleOwner kullanma seçeneği sunmak için artık setCurrentState() askıya alma işlevini içeriyor. (I329de, b/259344129)

API Değişiklikleri

  • lifecycle-livedata-ktx modüllerindeki tüm dosyalar ana lifecycle-livedata modülüne taşındı. (I10c6f, b/274800183)

Davranış Değişiklikleri

  • LiveData.map() ve LiveData.switchMap() uzantıları artık önceki LiveData için bir değer ayarlanmışsa döndürülen LiveData'ın value değerini ayarlayarak Jetpack Compose'da elde edilen LiveData'nın ilk kompozisyonda doğru durumda olmasını sağlar. (I91d2b, b/269479952)
  • ViewModel adlı kullanıcının addCloseable() cihazı artık ViewModel onCleared() için çağrı almışsa Closeable hemen kapanıyor. (I4712e, b/280294730)

Hata Düzeltmeleri

  • Yaşam döngüsü 2.6.2: Durum geri yüklenirse, save() üst öğe SavedStateRegistry'e kaydedilmeden çağrılır ve ardından durum tekrar geri yüklenirse SavedStateHandle'ın işlem sona erdikten sonra doğru şekilde geri yüklenmemesi sorunu düzeltildi. Bu işlem, rememberSaveable ile Gezinme Oluşturma Aracı'ndaki NavHost arasındaki etkileşimi düzeltir. (aosp/2729289)

Sürüm 2.7.0-alpha01

26 Temmuz 2023

androidx.lifecycle:lifecycle-*:2.7.0-alpha01 yayınlanır. 2.7.0-alpha01 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • Lifecycle.State artık Lifecycle.currentStateFlow aracılığıyla Compose-observable oldu. Bu işlev, value'ın mevcut Lifecycle.State olduğu bir StateFlow döndürür. (Ib212d, b/209684871)
  • Lifecycle.Event'ler artık Lifecycle.asFlow(). ile Flow olarak gözlemlenebilir (If2c0f, b/176311030)
  • Hem Lifecycle.Event.ON_RESUME hem de Lifecycle.Event.ON_PAUSE etkinlik geri çağırmalarına göre SideEffect oluşturma işlemlerini çalıştırmak için LifecycleResumeEffect API eklendi. (I60386, b/235529345)
  • Lifecycle.Event.ON_START ve Lifecycle.Event.ON_STOP etkinlik geri çağırmalarına dayalı Oluştur SideEffect'ları çalıştırmak için LifecycleStartEffect API eklendi. (I5a8d1, b/235529345)
  • Lifecycle.Event tabanlı Compose SideEffect öğelerini çalıştırmak için LifecycleEventEffect API eklendi. (Ic9794, b/235529345)
  • Lifecycle.State'u doğrudan Oluştur State olarak göstermek için Lifecycle.collectAsState() uzantısı 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ı artık önceki LiveData için ayarlanmış bir değer varsa döndürülen LiveData değerini value olarak ayarlar. Bu, gözlem davranışını değiştirmez. LiveData kaynağından gelen güncellenmiş değerler, yalnızca distinctUntilChanged() kaynağından döndürülen LiveData değerini gözlemlemeye başladığınızda geçerli olmaya devam eder. (Ib482f)
  • LifecycleObserver ile ilişkili proguard keep kuralları kaldırıldı. Bu, API'leri yansıma yoluyla kullanmak isteyen korumalı kodun, belirli kullanım alanı için kendi koruma kurallarını sağlaması gerektiği anlamına gelir. (Ia12fd)

Sürüm 2.6

Sürüm 2.6.2

6 Eylül 2023

androidx.lifecycle:lifecycle-*:2.6.2 yayınlanır. 2.6.2 sürümü bu kaydetmeleri içerir.

Hata Düzeltmeleri

  • Durum geri yüklenirse, save() üst öğe SavedStateRegistry'ye kaydedilmeden çağrılır ve ardından durum tekrar geri yüklenirse SavedStateHandle'ün işlem sona erdikten sonra doğru şekilde geri yüklenmemesi sorunu düzeltildi. Bu işlem, rememberSaveable ile Gezinme Oluşturma'nın NavHost arasındaki etkileşimi düzeltir. (aosp/2729289)

Sürüm 2.6.1

22 Mart 2023

androidx.lifecycle:lifecycle-*:2.6.1 yayınlanır. Sürüm 2.6.1 bu kaydetmeleri içerir.

Bağımlılık Güncellemeleri

2.6.0 sürümü

8 Mart 2023

androidx.lifecycle:lifecycle-*:2.6.0 yayınlanır. 2.6.0 sürümü bu taahhütleri içerir.

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

  • LiveData artı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 liveData.value'nin null döndürmesi ile açık bir null değeri döndürmesi arasındaki farkı ayırt etmenize olanak tanır.
  • MediatorLiveData artık ilk değeri ayarlamak için bir kurucu içeriyor.
  • collectAsStateWithLifecycle() için StateFlow ve Flow'ye, akışlardan veri toplayan ve en son değerini yaşam döngüsü bilinciyle Oluşturma Durumu olarak temsil eden yeni bir uzantı eklendi.
  • Duraklatma dağıtıcısının kullanılması bazı durumlarda kaynakların israf edilmesine yol açabileceğinden Lifecycle.launchWhenX yöntemleri ve Lifecycle.whenX yöntemlerinin desteği sonlandırılmıştır. Lifecycle.repeatOnLifecycle kullanılması önerilir. Çalışmayı tek seferlik askıya alma hakkında daha fazla bilgi için lütfen bunun neden güvenli olmadığını açıklayan bu açıklamaya bakın.
  • Kotlin Dönüşümü: Çok sayıda yaşam döngüsü 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 uyumluluğunu korur. Aşağıdaki sınıflarda, Kotlin'de yazılmış sınıflar için kaynak uyumsuz değişiklikler var: ViewTreeLifecycleOwner, LiveDataReactiveStreams, HasDefaultViewModelProviderFactory, ViewTreeViewModelStoreOwner, Transformations, ViewModelStoreOwner, LifecycleOwner

Aşağıdaki tabloda, yaşam döngüsünün yeni sürümü için kaynak dönüşümler sağlanmaktadır.

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 nesnesinin onChanged yönteminin boşluk kabul edebileceği durum, artık genel türün boşluk kabul edebileceği durumla eşleşiyor. Observer.onChanged()'ün boş değer kabul etmesini istiyorsanız Observer'u boş değer türüne sahip bir şekilde başlatmanız gerekir.
  • Aşağıdaki sınıflar da Kotlin'e dönüştürülmüştür ancak kaynak uyumluluğunu korur: DefaultLifecycleObserver, LifecycleEventObserver, Lifecycle, LifecycleRegistry, LifecycleObserver, ViewModelStore, AndroidViewModel, AbstractSavedStateViewModelFactory, LifecycleService, ServiceLifecycleDispatcher ve ProcessLifecycleOwner

Sürüm 2.6.0-rc01

22 Şubat 2023

androidx.lifecycle:lifecycle-*:2.6.0-rc01 yayınlanır. 2.6.0-rc01 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • LiveData.distinctUntilChanged() uzantısı artık önceki LiveData için ayarlanmış bir değer varsa döndürülen LiveData değerini value olarak ayarlar. Bu durum gözlem davranışını değiştirmez. LiveData kaynağından güncellenen değerler yalnızca distinctUntilChanged() öğesinden döndürülen LiveData öğesini gözlemlemeye başladığınızda geçerli olmaya devam eder. (Ib482f)

Sürüm 2.6.0-beta01

8 Şubat 2023

androidx.lifecycle:lifecycle-*:2.6.0-beta01 yayınlanır. 2.6.0-beta01 sürümü bu taahhütleri içerir.

Kotlin Dönüşümleri

  • LifecycleOwner artık Kotlin ile yazılmış. Bu, Kotlin'de yazılmış sınıflar için kaynakla uyumlu olmayan bir değişikliktir. Söz konusu değişiklik, artık önceki getLifecycle() işlevini uygulamak yerine lifecycle özelliğini geçersiz kılmalıdır. (I75b4b, b/240298691)
  • ViewModelStoreOwner artık Kotlin'de. Bu, Kotlin'de yazılmış sınıflar için kaynak uyumsuz bir değişikliktir. Artık önceki getViewModelStore() işlevini uygulamak yerine viewModelStore mülkünü geçersiz kılmalıdırlar. (I86409, b/240298691)
  • LifecycleOwner üzerinde lifecycleScope alanını sağlayan Kotlin uzantısı, lifecycle-runtime-ktx'dan lifecycle-common yapıya taşındı. (I41d78, b/240298691)
  • Lifecycle üzerindeki coroutineScope alanını sağlayan Kotlin uzantısı, lifecycle-runtime-ktx öğesindeki lifecycle-common yapıya taşındı. (Iabb91, b/240298691)

Sürüm 2.6.0-alpha05

25 Ocak 2023

androidx.lifecycle:lifecycle-*:2.6.0-alpha05 yayınlandı. 2.6.0-alpha05 sürümü bu taahhütleri içerir.

Kotlin Dönüşümleri

  • Transformations artık Kotlin ile yazılmış. Bu, Kotlin'de yazılmış ve doğrudan Transformations.map gibi bir söz dizimi kullanan sınıflar için kaynak uyumsuz bir değişikliktir. Kotlin kodu artık daha önce yalnızca lifecycle-livedata-ktx kullanılırken kullanılabilen Kotlin uzantı yöntemi söz dizimini kullanmalıdır. Java programlama dili kullanılırken bu yöntemlerin androidx.arch.core.util.Function yöntemi alan sürümleri kullanımdan kaldırılır ve Kotlin Function1 alan sürümleriyle değiştirilir. Bu değişiklik, ikili program uyumluluğunu korur. (I8e14f)
  • ViewTreeViewModelStoreOwner artık Kotlin ile yazılmış. Bu, Kotlin ile yazılmış sınıflar için kaynak uyumsuz bir değişikliktir. Artık daha önce ayarlanmış bir sahibi ayarlamak ve bulmak için androidx.lifecycle.setViewTreeViewModelStoreOwner ve androidx.lifecycle.findViewTreeViewModelStoreOwner sınıflarının View bölümündeki Kotlin uzantı yöntemlerini doğrudan içe aktarıp kullanmanız gerekir. Bu, ikili programlarla uyumludur ve Java programlama dilinde yazılan uygulamalar için kaynakla uyumlu olmaya devam eder. (Ia06d8, Ib22d8, b/240298691)
  • HasDefaultViewModelProviderFactory arayüzü artık Kotlin dilinde yazılmıştır. Bu, Kotlin'de yazılmış sınıflar için kaynak uyumsuz bir değişikliktir. Bu sınıflar artık önceki ilgili işlevleri uygulamak yerine defaultViewModelProviderFactory ve defaultViewModelCreationExtras özelliklerini geçersiz kılmalıdır. (Iaed9c, b/240298691)
  • Observer artık Kotlin ile yazılmış. onChanged() yöntemi artık parametresi için value adını kullanıyor. (Iffef2, I4995e, b/240298691)
  • AndroidViewModel, AbstractSavedStateViewModelFactory, LifecycleService, ServiceLifecycleDispatcher ve ProcessLifecycleOwner artık Kotlin ile yazılmıştır (I2e771, Ibae40, I160d7, I08884, I1cda7, b/240298691)

Sürüm 2.6.0-alpha04

11 Ocak 2023

androidx.lifecycle:lifecycle-*:2.6.0-alpha04 yayınlanır. 2.6.0-alpha04 sürümü bu kaydetmeleri içerir.

Yeni Özellikler

  • LiveData artı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 liveData.value'nin null döndürmesi ile açık bir null değeri döndürmesi arasındaki farkı ayırt etmenize olanak tanır. (Ibd018)

API Değişiklikleri

  • lifecycle-runtime-compose'un collectAsStateWithLifecycle() API'leri artık deneysel durumda değil. (I09d42, b/258835424)
  • Duraklatma dağıtıcısının kullanılması bazı durumlarda kaynakların israf edilmesine yol açabileceğinden Lifecycle.launchWhenX yöntemleri ve Lifecycle.whenX yöntemlerinin desteği sonlandırılmıştır. Lifecycle.repeatOnLifecycle kullanılması önerilir. (Iafc54, b/248302832)

Kotlin Dönüşümleri

  • ViewTreeLifecycleOwner artık Kotlin dilinde yazılmış. Bu, Kotlin ile yazılmış sınıflar için kaynak uyumsuz bir değişikliktir. Artık daha önce ayarlanmış bir sahibi ayarlamak ve bulmak için androidx.lifecycle.setViewTreeLifecycleOwner ve androidx.lifecycle.findViewTreeLifecycleOwner sınıflarının View bölümündeki Kotlin uzantı yöntemlerini doğrudan içe aktarıp kullanmanız gerekir. Bu, lifecycle-runtime-ktx'teki önceki Kotlin uzantısının yerini alır. Bu sürüm, Java programlama dilinde yazılmış uygulamalar için ikili uyumlu ve kaynak uyumludur. (I8a77a, I5234e, b/240298691)
  • LiveDataReactiveStreams artık Kotlin ile yazılmış. Daha önce lifecycle-reactivestreams-ktx'te bulunan Kotlin uzantıları lifecycle-reactivestreams modülüne taşındı ve Kotlin'de yazılan kodun birincil yüzeyi haline geldi. Kotlin uzantı yöntemi API'lerini kullanmıyorsanız bu, Kotlin'de yazılmış kod için kaynak uyumsuz bir değişikliktir. (I2b1b9, I95d22, b/240298691)
  • DefaultLifecycleObserver, LifecycleEventObserver, Lifecycle, LifecycleRegistry, LifecycleObserver ve ViewModelStore artık Kotlin'de yazılmıştır (Iadffd, (I60034, I8c52c, I9593d, I01fe1, I59a23, b/240298691)

Hata Düzeltmeleri

  • SavedStateHandle, get() sınıfını yanlış sınıf türüyle çağırırken artık ClassCastException ile kilitlenmiyor. (I6ae7c)

Sürüm 2.6.0-alpha03

24 Ekim 2022

androidx.lifecycle:lifecycle-*:2.6.0-alpha03 yayınlandı. 2.6.0-alpha03 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • Farklı yaşam döngüsü modülleri arasındaki kısıtlamaların beklendiği gibi çalışmamasıyla ilgili sorun 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 yararlı 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 yayınlanır. 2.6.0-alpha02 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • MediatorLiveData artık ilk değeri ayarlamak için bir kurucu içeriyor. (Ib6cc5, b/151244085)

Hata Düzeltmeleri

  • Lifecycle yapıları artık, birbirine bağlı tüm yaşam döngüsü yapılarının aynı sürümü kullanmasını sağlayan kısıtlamalar içeriyor ve bir tanesi yükseltildiğinde diğer bağımlılıkları da otomatik olarak yükseltiyor. b/242871265
  • FlowLiveData.asFlow() artık iş parçacığı güvenliği ve bağlamın korunmasını sağlamak için kendi Channel uygulamasını kullanmak yerine bir callbackFlow oluşturuyor. (I4a8b2, b/200596935)
  • FlowLiveData işlevinin asLiveData işlevi, yeni LiveData nesnesini oluştururken artık StateFlow öğesinin ilk değerini koruyacak. (I3f530, b/157380488)
  • Yaşam döngüsü 2.5.1'ten: AndroidViewModelFactory özel uygulamaları, durum bilgili oluşturucuyu Lifecycle 2.4+ (I5b315, b/238011621) ile kullanırken artık create(modelClass) işlevini doğru şekilde çağırıyor.

Sürüm 2.6.0-alpha01

29 Haziran 2022

androidx.lifecycle:lifecycle-*:2.6.0-alpha01 yayınlanır. 2.6.0-alpha01 sürümü bu kaydetmeleri içerir.

Yeni Özellikler

  • collectAsStateWithLifecycle'nin StateFlow ve Flow öğelerine, akışlardan veri toplayan ve en son değerini yaşam döngüsü bilinciyle Oluşturma Durumu olarak temsil eden yeni bir uzantı eklendi. Yaşam döngüsü en az belirli bir Lifecycle.State değerindeyken akış toplanır ve yeni emisyon, durum değerine ayarlanır. Yaşam döngüsü bu Lifecycle.State değerinin altına düştüğünde akış toplama işlemi durur ve durum değerinin güncellenmesi engellenir. (I1856e, b/230557927)

Sürüm 2.5

Sürüm 2.5.1

27 Temmuz 2022

androidx.lifecycle:lifecycle-*:2.5.1 yayınlanır. 2.5.1 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • AndroidViewModelFactory'ün özel uygulamaları artık Lifecycle 2.4 ve sonraki sürümlerde durum bilgisine sahip AndroidViewModelFactory kurucusunu kullanırken 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 yayınlanır. 2.5.0 sürümü bu kaydetmeleri içerir.

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

  • SavedStateHandle, LiveData kullanımına alternatif olarak değer değişikliklerini izlemek için Kotlin StateFlow değeri döndüren bir getStateFlow() API'si sunuyor.

  • ViewModel CreationExtras: Özel bir ViewModelProvider.Factory yazarken artık sırasıyla Application veya SavedStateHandle'ye erişmek için AndroidViewModelFactory ya da AbstractSavedStateViewModelFactory'yi genişletmeniz gerekmez. Bunun yerine, bu alanlar yeni create aşırı yüklemesi ile her ViewModelProvider.Factory alt sınıfına CreationExtras olarak sağlanır: create(Class<T>, CreationExtras). Bu ekstralar, sırasıyla Etkinlik 1.5.0 ve Bölüntü 1.5.0 kullanılırken Etkinliğiniz veya Bölüntünüz 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-viewmodel artık CreationExtras'i birincil veri kaynağı olarak kullanarak ViewModelProvider.Factory'nizi bir veya daha fazla lambda başlatıcı (özel fabrikanızın desteklediği her ViewModel sınıfı için bir tane) açısından tanımlamanıza olanak tanıyan bir viewModelFactory Kotlin DSL'si sağlıyor.

    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-compose artık özel bir ViewModelProvider.Factory oluşturma zorunluluğu olmadan ViewModel örneği oluşturmak için lambda fabrikası kullanan 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 Entegrasyonu: lifecycle-viewmodel-compose yapı artık SavedStateHandle.saveable'da, bir "ViewModel"ın SavedStateHandle tarafından desteklenen rememberSaveable benzeri davranışa 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()'da herhangi bir manuel işlem gerektirmeden ViewModel temizlendiğinde kapatılacak bir veya daha fazla Closeable nesnesini ViewModel'ye eklemenize olanak tanıyan yeni bir kurucu aşırı yükleme işlevi eklendi.

    Örneğin, bir ViewModel'e ekleyebileceğiniz ancak test aracılığıyla kontrol edebileceğiniz bir coroutine kapsamı oluşturmak için Closeable'yi uygulayan bir CoroutineScope oluşturabilirsiniz:

    class CloseableCoroutineScope(
        context: CoroutineContext = SupervisorJob() + Dispatchers.Main.immediate
    ) : Closeable, CoroutineScope {
        override val coroutineContext: CoroutineContext = context
        override fun close() {
            coroutineContext.cancel()
       }
    }
    

    Bu, viewModelScope ile aynı yaşam süresini korurken ViewModel yapıcınızda 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 öğesi, INITIALIZED konumundan DESTROYED konumuna taşınmaya çalışıldığında, Lifecycle öğesine ekli bir gözlemci gelip gelmediğine bakılmaksızın her zaman IllegalStateException hatası verilecek.
  • LifecycleRegistry, DESTROYED durumuna ulaştığında gözlemcilerini temizleyecektir.

Sürüm 2.5.0-rc02

15 Haziran 2022

androidx.lifecycle:lifecycle-*:2.5.0-rc02 yayınlandı. 2.5.0-rc02 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • ViewModelProvider, compileOnly yaşam döngüsü bağımlılıkları önceki sürümlerinin 2.5 ve sonraki sürümlerle karıştırılması durumunda artık kilitlenmeyecek. (I81a66, b/230454566)

Sürüm 2.5.0-rc01

11 Mayıs 2022

androidx.lifecycle:lifecycle-*:2.5.0-rc01 yayınlanır. Sürüm 2.5.0-rc01 bu kaydetmeleri içerir.

Hata Düzeltmeleri

  • MediatorLiveData.addSource() artık null kaynağı gözlemcilere iletmek yerine null kaynağı aktardığında NullPointerException atıyor.(Ibd0fb, b/123085232)

Sürüm 2.5.0-beta01

20 Nisan 2022

androidx.lifecycle:lifecycle-*:2.5.0-beta01 yayınlanır. 2.5.0-beta01 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • SavedStateHandle.saveable mülk temsilcileri eklendi. Bu temsilciler, SavedStateHandle'a durumu kaydetmek için mülk adlarını anahtar olarak kullanır (I8bb86, b/225014345)

Hata Düzeltmeleri

  • Birincil olmayan bir alt gezinme sekmesinde bir NavHost'nin başka bir NavHost'nin içine yerleştirilmesinin, birden fazla geri yığını kullanırken IllegalStateException'ye 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 yayınlanır. 2.5.0-alpha06 sürümü bu kaydetmeleri içerir.

Yeni Özellikler

  • rememberSaveable ile eşdeğerlik için SavedStateHandle.saveable'a deneysel MutableState aşırı yükleme ekleyin (I38cfe, b/224565154)

API Değişiklikleri

  • CreationExtras artık mühürlü değil, soyut. (Ib8a7a)

Hata Düzeltmeleri

  • SavedStateHandleController nedeniyle oluşan bir IllegalStateException: Already attached to lifecycleOwner hatası düzeltildi. (I7ea47, b/215406268)

Sürüm 2.5.0-alpha05

23 Mart 2022

androidx.lifecycle:lifecycle-*:2.5.0-alpha05 yayınlanır. 2.5.0-alpha05 sürümü bu taahhütleri içerir.

Yeni Özellikler

  • lifecycle-viewmodel-compose modülü artık SavedStateHandle içindeki değerlerin rememberSaveable'ın kullandığı kayıtlı örnek durumuna doğru şekilde entegre edilmesini sağlayan deneysel bir API olan SavedStateHandleSaver'ü sağlıyor. (Ia88b7, b/195689777)

API Değişiklikleri

  • Java'da Lifecycle 2.3 ve sonraki Lifecycle sürümleriyle ilgili bir uyumluluk sorunu düzeltildi. (I52c8a, b/219545060)

Hata Düzeltmeleri

  • SavedStateViewFactory artık SavedStateRegistryOwner ile başlatılmış olsa bile CreationExtras kullanımını destekliyor. Ek bilgiler 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 yayınlandı. 2.5.0-alpha04 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • SavedStateHandle, LiveData kullanımına alternatif olarak değer değişikliklerini izlemek için Kotlin StateFlow değeri dö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 yayınlanır. 2.5.0-alpha03 sürümü bu taahhütleri içerir.

Yeni Özellikler

  • addCloseable() API'si ve ViewModel'ye bir veya daha fazla Closeable nesnesi eklemenize olanak tanıyan yeni bir kurucu aşırı yükleme işlevi eklendi. Bu nesneler, onCleared()'da herhangi bir manuel işlem gerektirmeden ViewModel temizlendiğinde kapatılır. (I55ea0)
  • lifecycle-viewmodel artık birincil veri kaynağı olarak CreationExtras'ı kullanarak belirli ViewModel sınıflarını işlemek için lambda eklemenize olanak tanıyan bir InitializerViewModelFactory sağlıyor. (If58fc, b/216687549)
  • lifecycle-viewmodel-compose artık özel bir ViewModelProvider.Factory oluşturulmasını gerektirmeden ViewModel örneği oluşturmak için bir lambda fabrikası kullanan bir viewModel() API sunuyor. (I97fbb, b/216688927)

API Değişiklikleri

  • Artık lifecycle-viewmodel-compose üzerinden CreationExtras ile ViewModel oluşturabilirsiniz. (I08887, b/216688927)

Davranış değişiklikleri

  • Lifecycle.State öğesini INITIALIZED'dan DESTROYED'ye taşımaya çalışmak artık Lifecycle öğesinin bağlı bir gözlemcisinin olup olmadığına bakılmaksızın her zaman bir IllegalStateException hatası oluşturur. (I7c390, b/177924329)
  • LifecycleRegistry, DESTROYED durumuna ulaştığında gözlemcilerini temizleyecektir. (I4f8dd, b/142925860)

Sürüm 2.5.0-alpha02

9 Şubat 2022

androidx.lifecycle:lifecycle-*:2.5.0-alpha02 yayınlanır. 2.5.0-alpha02 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • SavedStateHandle ve SavedStateViewModelFactory, Kotlin'e dönüştürüldü. Bu sayede her iki sınıftaki genel türlerin boşluk kabul etme özelliği iyileştirildi. (Ib6ce2, b/216168263, I9647a, b/177667711)
  • LiveData switchMap işlev parametresi artık boş değer kabul eden bir çıkışa sahip olabilir. (I40396, b/132923666)
  • LiveData -ktx uzantıları artık bu işlevler çağrılırken sonucun kullanılmasını zorunlu kılmak için @CheckResult ile ek açıklamaya sahiptir. (Ia0f05, b/207325134)

Davranış değişiklikleri

  • SavedStateHandle artık belirtilen anahtar için herhangi bir değer olmadığında defaultValue değerini düzgün şekilde depolar. (I1c6ce, b/178510877)

Hata Düzeltmeleri

  • Yaşam Döngüsü 2.4.1 için: ProcessLifecycleInitializer, StartupException tetiklemesini engelleyen düzeltmelerin varsayılan olarak kullanılabilir olmasını sağlamak için lifecycle-process, Başlangıç 1.1.1'e bağlı olacak şekilde güncellendi. (Ib01df, b/216490724)
  • Özel AndroidViewModel sınıflarında parametreler yanlış sırada olduğunda ve ViewModel oluşturulmaya çalışıldığında artık daha iyi bir hata mesajı gösteriliyor. (I340f7, b/177667711)
  • Artık uygulama ayarlamanıza gerek kalmadan AndroidViewModelFactory kullanarak CreationExtras üzerinden görüntüleme modeli oluşturabilirsiniz. (I6ebef, b/217271656)

Sürüm 2.5.0-alpha01

26 Ocak 2022

androidx.lifecycle:lifecycle-*:2.5.0-alpha01 yayınlanır. 2.5.0-alpha01 sürümü bu taahhütleri içerir.

ViewModel CreationExtras

Bu sürümle birlikte, ViewModel'ün nasıl oluşturulacağını yeniden yapılandırmaya yönelik temelleri atıyoruz. Her biri ek işlevler ekleyen katı bir ViewModelProvider.Factory alt sınıfı grubu (AndroidViewModelFactory aracılığıyla Application oluşturucu parametresine, SavedStateViewModelFactory ve AbstractSavedStateViewModelFactory aracılığıyla SavedStateHandle oluşturucu parametresine vb. izin verme) yerine, yeni bir kavram olan CreationExtras'e 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ı göndermez. Bunun yerine, create için yeni bir aşırı yükleme çağrısı yapar: create(Class<T>, CreationExtras). Bu, ViewModelProvider.Factory örneğinin doğrudan uygulanmasının artık bu yeni CreationExtras öğelerinin her birine erişebildiği anlamına gelir:

  • ViewModelProvider.NewInstanceFactory.VIEW_MODEL_KEY: Bu String, ViewModelProvider.get()'ye ilettiğiniz özel anahtara erişim sağlar.
  • ViewModelProvider.AndroidViewModelFactory.APPLICATION_KEY, Application sınıfına erişim sağlar.
  • SavedStateHandleSupport.SAVED_STATE_REGISTRY_OWNER_KEY, bu ViewModel'i oluşturmak için kullanılan SavedStateRegistryOwner'a erişim sağlar.
  • SavedStateHandleSupport.VIEW_MODEL_STORE_OWNER_KEY, bu ViewModel'i oluşturmak için kullanılan ViewModelStoreOwner'a erişim sağlar.
  • SavedStateHandleSupport.DEFAULT_ARGS_KEY, SavedStateHandle oluşturmak için kullanılması gereken Bundle bağımsız değişkene erişim sağlar.

Bu ekstra özellikler 1.5.0-alpha01 Etkinliği, 1.5.0-alpha01 Parçası ve Gezinme 2.5.0-alpha01 kullanılırken varsayılan olarak sağlanır. Bu kitaplıkların önceki bir sürümünü kullanırsanız CreationExtras boş olur. Mevcut ViewModelProvider.Factory alt sınıflarının tümü, hem bu kitaplıkların önceki sürümleri tarafından kullanılan eski oluşturma yolunu hem de bundan sonra kullanılacak CreationExtras yolunu destekleyecek şekilde yeniden yazılmıştır.

Bu CreationExtras, Fabrika alt sınıflarının katı bir hiyerarşisine bağlı kalmadan her bir ViewModel öğesine ihtiyaç duyduğunuz bilgileri 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 SavedStateHandle oluşturmak üzere SavedStateHandleSupport'deki CreationExtras üzerinde createSavedStateHandle() Kotlin uzantı işlevini kullanırız. (Ia6654, b/188541057)

Özel CreationExtras, ComponentActivity veya Fragment içinde getDefaultViewModelCreationExtras() geçersiz kılarak sağlanabilir ve böylece özel ViewModelProvider.Factory için yerleşik bir destekli ekleme biçiminde kullanılabilir. Bu ekstralar, doğrudan ViewModelProvider ile kullanıldığında veya by viewModels() ve by activityViewModels() Kotlin mülk uzantılarını kullanırken özel fabrikanıza otomatik olarak sunulur. (I79f2b, b/207012584, b/207012585, b/207012490)

Hata Düzeltmeleri

  • Bir SavedStateHandle için sağlanan varsayılan değerin, SavedStateHandle'ten özel olarak kaldırılmış olsa bile işlem sona erip yeniden oluşturulduktan sonra yeniden görünmesi sorunu düzeltildi. Bunun sonucunda SavedStateHandle artık varsayılan değerleri ve geri yüklenen değerleri birlikte 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 yayınlanır. Sürüm 2.4.1 bu kaydetmeleri içerir.

Hata Düzeltmeleri

  • Yaşam döngüsü 2.5.0-alpha01'den geri bağlandı: Bir SavedStateHandle için sağlanan varsayılan değerin, SavedStateHandle'dan özel olarak kaldırılmış olsa bile işlem sona erip yeniden oluşturulduktan sonra yeniden görünmesi sorunu düzeltildi. Bunun sonucunda SavedStateHandle artık varsayılan değerleri ve geri yüklenen değerleri birlikte birleştirmeyecek, bunun yerine yalnızca geri yüklenen değerleri doğruluk kaynağı olarak kullanacaktır. (I53a4b)
  • lifecycle-process artık ProcessLifecycleInitializer kullanılmasının StartupException'e neden olduğu bir gerileme düzeltilen Androidx Startup 1.1.1 sürümüne bağlıdır. (b/216490724)

Sürüm 2.4.0

27 Ekim 2021

androidx.lifecycle:lifecycle-*:2.4.0 yayınlanır. 2.4.0 sürümü bu kaydetmeleri içerir.

2.3.0'dan bu yana önemli değişiklikler

  • @OnLifecycleEvent desteği sonlandırıldı. Bunların yerine LifecycleEventObserver veya DefaultLifecycleObserver kullanılmalıdır.
  • androidx.lifecycle:lifecycle-viewmodel-compose kitaplığı eklendi. viewModel() bileşeni ve LocalViewModelStoreOwner sağlar.
    • Kaynakta değişiklik: ViewModelProvider, Kotlin'de yeniden yazıldı. ViewModelProvider.Factory.create yöntemi artık null değer atanabilir genel türe izin vermiyor.
  • androidx.lifecycle:lifecycle-runtime-ktx ürününe yeni eş yordam API'si eklendi:
  • Lifecycle.repeatOnLifecycle, yaşam döngüsü en azından belirli bir durumda olduğunda eş yordamdaki bir kod bloğunu yürüten API'dir. Yaşam döngüsü hedef duruma girip çıktıkça engelleme iptal edilir ve yeniden başlatılır.
  • Flow.flowWithLifecycle, yaşam döngüsü en azından belirli bir durumdayken yukarı akış akışından değer yayınlayan API.
  • DefaultLifecycleObserver, lifecycle.lifecycle-common-java8 kuruluş biriminden lifecycle.lifecycle-common kuruluş birimine taşındı. lifecycle.lifecycle-common-java8 artık lifecycle.lifecycle-common'a ek olarak başka işlev sağlamıyor. Bu nedenle, bu platforma olan bağımlılık lifecycle.lifecycle-common ile değiştirilebilir.
  • lifecycle-viewmodel-ktx'teki coroutine olmayan API'ler lifecycle-viewmodel modülüne taşındı.
  • lifecycle-process artık ProcessLifecycleOwner öğesini başlatmak için androidx.startup kullanıyor.

    Bu işlem daha önce androidx.lifecycle.ProcessLifecycleOwnerInitializer tarafından yapılıyordu.

    Geçmişte işlem yaşam döngüsünü başlatmak için kullanılan ContentProvider yerine tools:node="remove" kullandıysanı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, Yaşam Döngüsü 2.4.0-beta01'de herhangi bir değişiklik yapılmadan yayınlandı. 2.4.0-rc01 sürümü bu taahhütleri içerir.

Sürüm 2.4.0-beta01

15 Eylül 2021

androidx.lifecycle:lifecycle-*:2.4.0-beta01 yayınlanır. 2.4.0-beta01 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • @OnLifecycleEvent desteği sonlandırıldı. Bunun yerine LifecycleEventObserver veya DefaultLifecycleObserver kullanılmalıdır. (I5a8fa)
  • DefaultLifecycleObserver, androidx.lifecycle.lifecycle-common-java8 yerine androidx.lifecycle.lifecycle-common konumuna taşındı. androidx.lifecycle.lifecycle-common-java8 artık androidx.lifecycle.lifecycle-common dışında ek işlev sunmadığından bu işleve duyulan bağımlılık androidx.lifecycle.lifecycle-common ile değiştirilebilir. (I021aa)
  • lifecycle-viewmodel-ktx'teki coroutine olmayan API'ler lifecycle-viewmodel modülüne taşındı. (I6d5b2)

Harici Katkı

  • ViewModel dokümanlarındaki bir türü düzelttiğiniz için dmitrilc'e teşekkür ederiz. (#221)

Sürüm 2.4.0-alpha03

4 Ağustos 2021

androidx.lifecycle:lifecycle-*:2.4.0-alpha03 yayınlanır. 2.4.0-alpha03 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • Kaynakta değişiklik: ViewModelProvider, Kotlin'de yeniden yazıldı. ViewModelProvider.Factory.create yöntemi artık nullable genel türüne izin vermiyor. (I9b9f6)

Davranış Değişiklikleri

  • Lifecycle.repeatOnLifecycle: block, yürütme tekrarlanırken artık her zaman seri olarak çağrılıyor. (Ibab33)

Harici Katkı

  • repeatOnLifecycle dokümanlarında kod snippet'lerini düzelttiği için chao2zhang'e teşekkürler. #205.

Sürüm 2.4.0-alpha02

16 Haziran 2021

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

Yeni Özellikler

  • lifecycle-runtime-ktx'a, repeateOnLifecycle'nin onStart() veya onResume() içinde yanlış kullanıldığını algılayan yeni bir RepeatOnLifecycleWrongUsage dil bilgisi denetimi eklendi. (706078, b/187887400)

API Değişiklikleri

  • Yapılandırılmış eşzamanlılığa saygı gösteren ve daha kolay anlaşılan Lifecycle.repeatOnLifecycle API'si için LifecycleOwner.addRepeatingJob API kaldırıldı. (I4a3a8)
  • Diğer androidx.startup.Initializer'ların bağımlı olarak kullanabilmesi için ProcessLifecycleInitializer'yi herkese açık hale getirin. (I94c31)

Hata Düzeltmeleri

  • Alanda değiştiriciler olduğunda NullSafeMutableLiveData hata analizi kontrolüyle ilgili sorun düzeltildi. (#147, b/183696616)
  • Genel öğeler kullanılırken NullSafeMutableLiveData hata analizi kontrolüyle ilgili başka bir sorun düzeltildi. (#161, b/184830263)

Harici Katkı

  • NullSafeMutableLiveData hata analizi kontrolünü iyileştirdiğiniz için maxsav'a teşekkür ederiz. (#147, b/183696616)
  • NullSafeMutableLiveData lint kontrolünü iyileştirdiğiniz için teşekkürler kozaxinan. (#161, b/184830263)

Sürüm 2.4.0-alpha01

24 Mart 2021

androidx.lifecycle:lifecycle-*:2.4.0-alpha01 yayınlanır. 2.4.0-alpha01 sürümü bu taahhütleri içerir.

Davranış Değişiklikleri

  • lifecycle-process artık ProcessLifecycleOwner öğesini başlatmak için androidx.startup kullanıyor.

    Bu işlem daha önce androidx.lifecycle.ProcessLifecycleOwnerInitializer tarafından yapılıyordu.

    Geçmişte işlem yaşam döngüsünü başlatmak için kullanılan ContentProvider yerine tools:node="remove" kullandıysanı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

  • Yaşam döngüsü en azından belirli bir durumdayken Lifecycle.repeatOnLifecycle API'yi kullanarak yukarı akış akışında değerler yayan bir Flow.flowWithLifecycle API eklendi. Bu, yine yeni LifecycleOwner.addRepeatinJob API'nin bir alternatifidir. (I0f4cd)

Hata Düzeltmeleri

  • Yaşam döngüsü 2.3.1'den itibaren: NonNullableMutableLiveData lint kuralı artık farklı boşluk kabul etme durumuna sahip alan değişkenlerini doğru şekilde ayırt edebilir. (b/169249668)

Yaşam Döngüsü Görünüm Modeli Derleme Sürümü 1.0.0

Sürüm 1.0.0-alpha07

16 Haziran 2021

androidx.lifecycle:lifecycle-viewmodel-compose:1.0.0-alpha07 yayınlanır. 1.0.0-alpha07 sürümü bu taahhütleri içerir.

Çağlık API Değişiklikleri

  • viewModel() artık isteğe bağlı bir ViewModelStoreOwner alır. Bu sayede, LocalViewModelStoreOwner dışındaki sahiplerle çalışmayı kolaylaştırır. Örneğin, artık belirli bir gezinme grafiğiyle ilişkili bir ViewModel 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 yayınlanır. 1.0.0-alpha06 sürümü bu kaydetmeleri içerir.

Oluştur 1.0.0-beta08 sürümü ile 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 yayınlanır. 1.0.0-alpha05 sürümü bu taahhütleri içerir.

Yeni Özellikler

  • Oluşturma'nın 1.0.0-beta07 sü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 uyumludur (I6f9de, b/184718994)

Sürüm 1.0.0-alpha04

7 Nisan 2021

androidx.lifecycle:lifecycle-viewmodel-compose:1.0.0-alpha04 yayınlanır. 1.0.0-alpha04 sürümü bu taahhütleri içerir.

Bağımlılık Değişiklikleri

  • Bu sürüm, androidx.hilt:hilt-navigation-compose ve androidx.navigation:navigation-compose'un androidx.compose.compiler:compiler:1.0.0-beta04 ve androidx.compose.runtime:runtime:1.0.0-beta04'daki bağımlılıkları senkronize etmesine olanak tanır. 1.0.0 için 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 yayınlanır. 1.0.0-alpha03 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • LocalViewModelStoreOwner.current artık mevcut kompozisyonda ViewModelStoreOwner'ın kullanılıp kullanılamayacağını daha iyi belirlemek için boş bırakılabilir bir ViewModelStoreOwner döndürüyor. viewModel() ve NavHost gibi ViewModelStoreOwner gerektiren API'ler, ViewModelStoreOwner ayarlanmasa bile istisna atar. (Idf39a)

Lifecycle-Viewmodel-Compose Sürüm 1.0.0-alpha02

24 Şubat 2021

androidx.lifecycle:lifecycle-viewmodel-compose:1.0.0-alpha02 yayınlanır. 1.0.0-alpha02 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • LocalViewModelStoreOwner artık asProvidableCompositionLocal() API'nin yerini alarak CompositionLocalProvider ile kullanılabilen provides işlevlerine sahiptir. (I45d24)

Lifecycle-Viewmodel-Compose Sürüm 1.0.0-alpha01

10 Şubat 2021

androidx.lifecycle:lifecycle-viewmodel-compose:1.0.0-alpha01 yayınlandı. 1.0.0-alpha01 sürümü bu taahhütleri içerir.

Yeni Özellikler

  • viewModel() composable ve LocalViewModelStoreOwner, androidx.compose.ui.viewinterop konumundan androidx.lifecycle.viewmodel.compose paketindeki 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 yayınlanır. Sürüm 2.3.1 bu kaydetmeleri içerir.

Hata Düzeltmeleri

  • NonNullableMutableLiveData lint kuralı artık farklı boşluk kabul etme durumuna sahip alan değişkenlerini doğru şekilde ayırt edebilir. (b/169249668)

Sürüm 2.3.0

Sürüm 2.3.0

10 Şubat 2021

androidx.lifecycle:lifecycle-*:2.3.0 yayınlandı. 2.3.0 sürümü bu taahhütleri içerir.

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

  • Bölünemeyen sınıflar için SavedStateHandle desteği: SavedStateHandle artık belirli bir anahtar için setSavedStateProvider()'ı çağırmanıza olanak tanıyarak ve SavedStateHandle'dan durumunu kaydetmesi istendiğinde saveState()'e geri çağırma isteği gönderecek bir SavedStateProvider sağlayarak tembel serileştirmeyi destekliyor. Bölünemeyen sınıfları kaydetme başlıklı makaleyi inceleyin.
  • Yaşam Döngüsü Davranış Yaptırım Politikası:
    • LifecycleRegistry artık DESTROYED değerini son durum olarak zorunlu kılıyor.
    • LifecycleRegistry artık yöntemlerinin ana iş parçacığında çağrıldığını doğrular. Etkinliklerin, parçaların vb. yaşam döngüleri için her zaman bir şarttı. Ana olmayan iş parçalarından gözlemciler eklendiğinde, çalışma zamanında kilitlenmelerin yakalanması zorlaşıyordu. Kendi bileşenlerinizin sahip olduğu LifecycleRegistry nesneleri için LifecycleRegistry.createUnsafe(...) kullanarak kontrolleri açıkça devre dışı bırakabilirsiniz. Ancak bu durumda, bu LifecycleRegistry'ye farklı iş parçalarından erişildiğinde uygun bir senkronizasyonun yapıldığından emin olmanız gerekir.
  • Yaşam döngüsü durumu ve etkinlik yardımcıları: State ve geçiş yönü verildiğinde Event oluşturmak için Lifecycle.Event'ye downFrom(State), downTo(State), upFrom(State), upTo(State) statik yardımcı yöntemleri eklendi. Yaşam döngüsünün Event'den hemen sonra geçeceği State değerini sağlayan getTargetState() yöntemi eklendi.
  • withStateAtLeast: Yaşam döngüsü durumunu bekleyen ve durum değişikliği noktasında askıya alınmayan bir kod bloğunu eşzamanlı olarak çalıştıran, ardından sonuçla devam eden Lifecycle.withStateAtLeast API'leri eklendi. Bu API'ler, askıya alma kodunun çalıştırılmasına izin vermedikleri ve özel bir dağıtıcı kullanmadıkları için mevcut when* yöntemlerinden farklıdır. (aosp/1326081)
  • ViewTree API'ler: Yeni ViewTreeLifecycleOwner.get(View) ve ViewTreeViewModelStoreOwner.get(View) API, View örneği verildiğinde sırasıyla LifecycleOwner ve ViewModelStoreOwner içeren öğeleri almanıza olanak tanır. Bu alanı doğru şekilde doldurmak için 1.2.0 etkinliğine, 1.3.0 fragmanına ve AppCompat 1.3.0-alpha01 veya sonraki bir sürüme yükseltmeniz gerekir. findViewTreeLifecycleOwner ve findViewTreeViewModelStoreOwner Kotlin uzantıları sırasıyla lifecycle-runtime-ktx ve lifecycle-viewmodel-ktx'te 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'te 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 yayınlanır. Sürüm 2.3.0-rc01 bu kaydetmeleri içerir.

Hata Düzeltmeleri

  • SavedStateHandle için keys() yöntemi artık durum kaydedilmeden önce ve sonra tutarlı. 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ı

Sürüm 2.3.0-beta01

1 Ekim 2020

androidx.lifecycle:lifecycle-*:2.3.0-beta01 yayınlanır. 2.3.0-beta01 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • Lambda söz dizimini kullanmak için gerekli olan LiveData.observe() Kotlin uzantısı, Kotlin 1.4'te gerekli olmadığından artık desteklenmiyor. (I40d3f)

Hata Düzeltmeleri

Dokümanlardaki Değişiklikler

  • liveData oluşturucu ve asLiveData() doküman, belirtilen 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 yayınlanır. 2.3.0-alpha07 sürümü bu kaydetmeleri içerir.

Hata Düzeltmeleri

  • NullSafeMutableLiveData lint kontrolündeki kilitlenme sorunu düzeltildi. (aosp/1395367)

Sürüm 2.3.0-alpha06

22 Temmuz 2020

androidx.lifecycle:lifecycle-*:2.3.0-alpha06 yayınlanır. 2.3.0-alpha06 sürümü bu taahhütleri içerir.

Yeni Özellikler

  • State ve geçiş yönü verildiğinde Event oluşturmak için Lifecycle.Event hedefine downFrom(State), downTo(State), upFrom(State), upTo(State) statik yardımcı yöntemleri eklendi. Yaşam döngüsünün doğrudan Event sonrasında geçireceği State sağlayan getTargetState() yöntemi eklendi. (I00887)
  • Yaşam döngüsü durumunu bekleyen ve durum değişikliği noktasında duraklatma içermeyen bir kod bloğunu eşzamanlı olarak çalıştıran, ardından sonuçla devam eden Lifecycle.withStateAtLeast API'leri eklendi. Bu API'ler, askıya alma kodunun çalıştırılmasına izin vermedikleri ve özel bir dağıtıcı kullanmadıkları için mevcut when* yöntemlerinden farklıdır. (aosp/1326081)

Davranış Değişiklikleri

  • LifecycleRegistry artık DESTROYED değerini son durum olarak zorunlu kılıyor. (I00887)
  • LifecycleRegistry artık kendi 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 bir şarttı. Ana olmayan iş parçalarından gözlemciler eklendiğinde, çalışma zamanında kilitlenmelerin yakalanması zorlaşıyordu. Kendi bileşenlerinizin sahip olduğu LifecycleRegistry nesneleri için LifecycleRegistry.createUnsafe(...) kullanarak kontrolleri açıkça devre dışı bırakabilirsiniz ancak bu durumda, bu LifecycleRegistry'ye farklı iş parçalarından erişildiğinde uygun bir senkronizasyonun yapıldığından emin olmanız gerekir (Ie7280, b/137392809)

Hata Düzeltmeleri

  • NullSafeMutableLiveData oyunundaki bir kilitlenme düzeltildi. (b/159987480)
  • lifecycle-livedata-core-ktx ile birlikte (ve özellikle NullSafeMutableLiveData ile) paketlenen Lint kontrolleri için bir ObsoleteLintCustomCheck düzeltildi. (b/158699265)

Sürüm 2.3.0-alpha05

24 Haziran 2020

androidx.lifecycle:lifecycle-*:2.3.0-alpha05 yayınlanır. 2.3.0-alpha05 sürümü bu kaydetmeleri içerir.

Hata Düzeltmeleri

  • LiveData artık onActive() veya onInactive() için yinelenen çağrılardan kaçınarak yeniden giren durumları daha iyi yönetiyor. (b/157840298)
  • Android Studio 4.1 Canary 6 veya sonraki sürümler 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 yayınlanır. 2.3.0-alpha04 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • NonNullableMutableLiveData Lint kontrolündeki bir kilitlenme düzeltildi. (b/157294666)
  • NonNullableMutableLiveData lint denetimi artık null olmayan bir tür parametresi içeren bir MutableLiveData üzerinde null değerinin ayarlandığı çok daha fazla durumu kapsamaktadır. (b/156002218)

Sürüm 2.3.0-alpha03

20 Mayıs 2020

androidx.lifecycle:lifecycle-*:2.3.0-alpha03 sürümleri yayınlanır. 2.3.0-alpha03 sürümü bu taahhütleri içerir.

Yeni Özellikler

  • SavedStateHandle artık belirli bir anahtar için setSavedStateProvider() yöntemini çağırmanıza izin vererek geç serileştirmeyi desteklemektedir. Bu özellik, SavedStateHandle öğesinin durumunu kaydetmesi istendiğinde saveState() çağrısını alacak bir SavedStateProvider sağlar. (b/155106862)
  • Yeni ViewTreeViewModelStoreOwner.get(View) API, bir View örneği verildiğinde kapsayıcı ViewModelStoreOwner'ı almanıza olanak tanır. Bu alanı doğru şekilde doldurmak için Etkinlik 1.2.0-alpha05, Fragment 1.3.0-alpha05 ve AppCompat 1.3.0-alpha01'e yükseltmeniz gerekir. lifecycle-viewmodel-ktx'a findViewModelStoreOwner() Kotlin uzantısı eklendi. (aosp/1295522)

Hata Düzeltmeleri

Sürüm 2.3.0-alpha02

29 Nisan 2020

androidx.lifecycle:lifecycle-*:2.3.0-alpha02 yayınlanır. 2.3.0-alpha02 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • SavedStateViewModelFactory artık, hazır bulunmayan ve AndroidViewModel desteğine ihtiyaç duyulmayan durumları daha iyi desteklemek için oluşturucusuna null Application iletmenize olanak tanır. (aosp/1285740)

Hata Düzeltmeleri

  • API 28 ve önceki cihazlarda sınıf doğrulama hatası önlenerek baştan başlatma performansı iyileştirildi. (aosp/1282118)

Sürüm 2.3.0-alpha01

4 Mart 2020

androidx.lifecycle:lifecycle-*:2.3.0-alpha01 yayınlandı. 2.3.0-alpha01 sürümü bu taahhütleri içerir.

Yeni Özellikler

  • Yeni bir ViewTreeLifecycleOwner.get(View) API'sı, verilen View örneğini içeren LifecycleOwner öğesini almanızı sağlar. Bu alanı doğru şekilde doldurmak için Etkinlik 1.2.0-alpha01 ve Fragment 1.3.0-alpha01'e geçmeniz gerekir. findViewTreeLifecycleOwner Kotlin uzantısı lifecycle-runtime-ktx'te kullanılabilir. (aosp/1182361, aosp/1182956)
  • Kotlin'de boş olmayan olarak tanımlanmış bir MutableLiveData için null değeri ayarlarken sizi uyaran yeni bir Lint kontrolü eklendi. Bu, livedata-core-ktx veya livedata-ktx yapıları kullanılırken kullanılabilir. (aosp/1154723, aosp/1159092)
  • LifecycleOwner'yi uygulayan ve iş parçacığı güvenli, değişken bir Lifecycle sağlayan yeni bir lifecycle-runtime-testing yapı mevcuttur.TestLifecycleOwner (aosp/1242438)

Hata düzeltmeleri

  • lifecycle-runtime yapısının artık benzersiz bir paket adı var. (aosp/1187196)

Sürüm 2.2.0

ViewModel-Savedstate Sürüm 2.2.0

5 Şubat 2020

androidx.lifecycle:lifecycle-viewmodel-savedstate:2.2.0 yayınlanır. 2.2.0 sürümü bu taahhütleri içerir.

Yaşam döngüsü ViewModel SavedState artık diğer yaşam döngüsü yapılarıyla aynı sürümü paylaşıyor. 2.2.0'ün davranışı, 1.0.0'ün davranışıyla aynıdır.

Sürüm 2.2.0

22 Ocak 2020

androidx.lifecycle:lifecycle-*:2.2.0 yayınlanır. 2.2.0 sürümü bu kaydetmeleri içerir.

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

  • Yaşam döngüsü coroutine entegrasyonu: Yeni lifecycle-runtime-ktx yapı, yaşam döngüsü ile Kotlin coroutine'leri arasında entegrasyon sağlar. lifecycle-livedata-ktx, iş parçacıklarından yararlanacak şekilde de genişletildi. Daha fazla bilgi için Kotlin eşzamanlı programlama yapılarını mimari bileşenleriyle kullanma başlıklı makaleyi inceleyin.
  • ViewModelProviders.of() desteği sonlandırıldı: ViewModelProviders.of() desteği sonlandırıldı. Fragment 1.2.0'i kullanırken aynı işlevi elde etmek için yeni ViewModelProvider(ViewModelStoreOwner) kurucusuna bir Fragment veya FragmentActivity iletebilirsiniz.
  • lifecycle-extensions Öğesinin kullanımdan kaldırılması: Yukarıda belirtilen ViewModelProviders.of()'ın kullanımdan kaldırılmasıyla birlikte, bu sürüm lifecycle-extensions'daki son API'nin de kullanımdan kaldırıldığını işaret eder. Bu öğe artık tamamen kullanımdan kaldırılmış kabul edilmelidir. lifecycle-extensions yerine lifecycle-extensions yerine ihtiyaç duyduğunuz belirli Yaşam Döngüsü yapılarına (ör. LifecycleService kullanıyorsanız lifecycle-service, ProcessLifecycleOwner kullanıyorsanız lifecycle-process) uymanızı öneririz. Çünkü lifecycle-extensions için gelecekte bir 2.3.0 sürümü yayınlanmayacaktır.
  • Gradle Artımlı Ek Açıklama İşleyicisi: Yaşam döngüsü ek açıklama işleyicisi varsayılan olarak artımlıdır. Uygulamanız Java 8 programlama dilinde yazılmışsa bunun yerine DefautLifecycleObserver, Java 7 programlama dilinde yazılmışsa LifecycleEventObserver kullanabilirsiniz.

Sürüm 2.2.0-rc03

4 Aralık 2019

androidx.lifecycle:lifecycle-*:2.2.0-rc03 yayınlanır. 2.2.0-rc03 sürümü bu taahhütleri içerir.

Hata düzeltmeleri

  • Sahte bir ViewModel, ViewModelStore içinde depolanıp daha sonra varsayılan fabrikayla sorgulandığında ortaya çıkan hata düzeltildi.
  • launchWhenCreated içinde Dispatchers.Main.immediate kullanımı ve ilgili yaşam döngüsü etkinliği sırasında eşzamanlı olarak çağrılacak benzer yöntemleri düzeltin. (aosp/1156203)

Harici katkılar

  • Düzeltmeyle katkıda bulunan Anders Järleberg'e teşekkürler. (aosp/1156203)
  • Satır içi yürütmeyle ilgili bir uygulamayı inceleyen Jetbrains'den Vsevolod Tolstopyatov'a teşekkürler.

Bağımlılık değişiklikleri

  • Yaşam döngüsü uzantıları artık 1.2.0-rc03 Fragment'ine bağlıdır.

Sürüm 2.2.0-rc02

7 Kasım 2019

androidx.lifecycle:lifecycle-*:2.2.0-rc02 yayınlanır. 2.2.0-rc02 sürümü bu taahhütleri içerir.

Hata düzeltmeleri

  • Kitaplığın ProGuard kurulumunda, hedef API 29'un altındaysa 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 yayınlanır. 2.2.0-rc01 sürümü bu taahhütleri içerir.

Hata düzeltmeleri

  • launchWhenCreated ve ilgili yöntemlerin, Dispatchers.Main.immediate yerine Dispatchers.Main kullanması nedeniyle ilişkili yaşam döngüsü yönteminden bir kare geç çalıştırılması sorunu düzeltildi. (aosp/1145596)

Harici katkılar

  • Düzeltmeyle katkıda bulunan Nicklas Ansman'a teşekkürler. (aosp/1145596)

Sürüm 2.2.0-beta01

9 Ekim 2019

androidx.lifecycle:lifecycle-*:2.2.0-beta01 yayınlanır. Sürüm 2.2.0-beta01 bu kaydetmeleri içerir.

Hata düzeltmeleri

  • Lifecycle 2.2.0-alpha05'te ProcessLifecycleOwner'nin sıralamasında ve etkinliğin LifecycleOwner'ının Android 10 cihazlarda başlatıldı ve devam ettirilmeye geçirilmesinde ortaya çıkan bir gerileme düzeltildi. (aosp/1128132)
  • lifecycle-process'nin 2.0.0 veya 2.1.0 sürümü kullanılırken NullPointerException'a neden olan, Yaşam Döngüsü 2.2.0-alpha05'te tanıtılan bir gerileme düzeltildi. (b/141536990)

Sürüm 2.2.0-alpha05

18 Eylül 2019

androidx.lifecycle:lifecycle-*:2.2.0-alpha05 yayınlanır. 2.2.0-alpha05 sürümü bu kaydetmeleri içerir.

Hata düzeltmeleri

  • İş parçacıklı canlı veri oluşturucuda bir yarış koşulu düzeltildi. b/140249349

Sürüm 2.2.0-alpha04

5 Eylül 2019

androidx.lifecycle:lifecycle-*:2.2.0-alpha04 yayınlanır. Bu sürüme dahil edilen taahhütleri burada bulabilirsiniz.

Yeni özellikler

  • lifecycleScope, whenCreated, whenStarted, whenResumed, viewModelScope ve liveData'in temel uygulaması artık Dispatchers.Main yerine Dispatchers.Main.immediate kullanıyor. (b/139740492)

Harici katkılar

  • Dispatchers.Main.immediate'e geçişe katkıda bulunan Nicklas Ansman'a teşekkürler. (aosp/1106073)

Sürüm 2.2.0-alpha03

7 Ağustos 2019

androidx.lifecycle:lifecycle-*:2.2.0-alpha03 yayınlanır. Bu sürüme dahil edilen taahhütleri burada bulabilirsiniz.

Yeni özellikler

API değişiklikleri

  • ViewModelProviders.of() desteği sonlandırıldı. Aynı işlevi elde etmek için yeni ViewModelProvider(ViewModelStoreOwner) kurucusuna bir Fragment veya FragmentActivity iletebilirsiniz. (aosp/1009889)

Sürüm 2.2.0-alpha02

2 Temmuz 2019

androidx.lifecycle:*:2.2.0-alpha02 yayınlandı. Bu sürüme dahil edilen taahhütleri burada bulabilirsiniz.

API değişiklikleri

  • LiveDataScope.initialValue, liveData bloğunun mevcut yayınlanan değerini izleyen LiveDataScope.latestValue ile değiştirildi.
  • liveData oluşturucuya, timeout parametresini Duration türü olarak 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 yayınlandı. Bu sürüme dahil edilen taahhütleri burada bulabilirsiniz.

Yeni özellikler

  • Bu sürümde, Lifecycle ve LiveData için Kotlin coroutine'lerine destek sağlayan yeni özellikler eklendi. Bu özelliklerle ilgili ayrıntılı dokümanları burada bulabilirsiniz.

ViewModel-SavedState Sürümü 1.0.0

Sürüm 1.0.0

22 Ocak 2020

androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0 yayınlanır. 1.0.0 sürümü bu taahhütleri içerir.

1.0.0 sürümündeki önemli özellikler

  • Yeni SavedStateHandle sınıfı eklendi. Bu işlem, ViewModel sınıflarınızın kayıtlı duruma erişmesine ve katkıda bulunmasına olanak tanır. Bu nesne, ViewModel sınıfının kurucusuna ve Fragments tarafından varsayılan olarak sağlanan fabrikalara alınabilir. AppCompatActivity, SavedStateHandle öğesini otomatik olarak ekler.
  • AbstractSavedStateViewModelFactory eklendi. ViewModel için özel fabrikalar oluşturmanıza ve bu fabrikalara SavedStateHandle'a erişim izni vermenize olanak tanır.

ViewModel-Savedstate Sürümü 1.0.0-rc03

4 Aralık 2019

androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0-rc03 yayınlanır. 1.0.0-rc03 sürümü bu taahhütleri içerir.

Bağımlılık değişiklikleri

  • Yaşam döngüsü ViewModel SavedState artık yaşam döngüsü 2.2.0-rc03'e bağlıdır.

Viewmodel-Savedstate Sürümü 1.0.0-rc02

7 Kasım 2019

androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0-rc02 yayınlandı. 1.0.0-rc02 sürümü bu taahhütleri içerir.

Bağımlılık değişiklikleri

  • Şimdi ise 2.2.0-rc02 yaşam döngüsüne bağlı.

ViewModel-SavedState Sürümü 1.0.0-rc01

23 Ekim 2019

androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0-rc01, 1.0.0-beta01 ile aynı şekilde yayınlanır. Sürüm 1.0.0-rc01 bu kaydetmeleri içerir.

ViewModel-Savedstate Sürüm 1.0.0-beta01

9 Ekim 2019

androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0-beta01 yayınlandı. 1.0.0-beta01 sürümü bu taahhütleri içerir.

Hata düzeltmeleri

  • Activity.onActivityResult() sürümünde SavedState ViewModel'e ilk kez erişildiğinde IllegalStateException ile sonuçlanan sorun düzeltildi. (b/139093676)
  • AbstractSavedStateViewModelFactory kullanılırken yaşanan bir IllegalStateException sorunu düzeltildi. (b/141225984)

ViewModel-SavedState Sürüm 1.0.0-alpha05

18 Eylül 2019

androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0-alpha05 yayınlanır. 1.0.0-alpha05 sürümü bu taahhütleri içerir.

API değişiklikleri

  • SavedStateViewModelFactory artık AbstractSavedStateViewModelFactory'yi genişletmiyor ve SavedStateHandle yalnızca bunu isteyen ViewModel'ler için oluşturuluyor (aosp/1113593)

ViewModel-SavedState Sürüm 1.0.0-alpha03

7 Ağustos 2019

androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0-alpha03 yayınlanır. Bu sürümdeki kaydetmelere buradan ulaşabilirsiniz.

Zararlı Değişiklikler

ViewModel-SavedState Sürümü 1.0.0-alpha02

2 Temmuz 2019

androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0-alpha02 yayınlandı. Bu sürüme dahil edilen taahhütleri burada bulabilirsiniz.

Yeni özellikler

  • Varsayılan değer kabul eden SavedStateHandle.getLiveData() aşırı yükleme işlevi eklendi.

API Değişiklikleri

  • SavedStateVMFactory, SavedStateViewModelFactory olarak yeniden adlandırıldı.
  • AbstractSavedStateVMFactory, AbstractSavedStateViewModelFactory olarak yeniden adlandırıldı.

ViewModel-Savedstate Sürüm 1.0.0-alpha01

13 Mart 2019

androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0-alpha01 yayınlandı. Bu ilk sürümün tam taahhüt günlüğünü burada bulabilirsiniz.

Yeni özellikler

  • Artık ViewModels, savedstate özelliğine katkıda bulunabilir. Bunun için yeni kullanıma sunulan görünüm modelinin fabrikasını SavedStateVMFactory kullanırsınız ve ViewModel'inizde parametre olarak SavedStateHandlenesnesi alan bir kurucu olmalıdır.

2.1.0 sürümü

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

  • Yaşam döngüsü olaylarının akışının gerekli olduğu durumlar için LifecycleEventObserver eklendi. Gizli bir GenericLifecycleObserver sınıfı yerine herkese açık bir API'dir.
  • LiveData.observe yöntemleri ve Transformations.* yöntemleri için ktx uzantıları eklendi.
  • Kaynak LiveData değeri değiştirilene kadar değer yayınlamayan yeni bir LiveData nesnesi oluşturan Transformations.distinctUntilChanged eklendi.
  • ViewModel.viewModelScope uzantı mülkü eklenerek ViewModel'lere coroutine desteği eklendi.

2.1.0 sürümü

5 Eylül 2019

androidx.lifecycle:lifecycle-*:2.1.0 yayınlanır. Bu sürümdeki kaydetmelere buradan ulaşabilirsiniz.

Sürüm 2.1.0-rc01

2 Temmuz 2019

androidx.lifecycle:*:2.1.0-rc01, androidx.lifecycle:*:2.1.0-beta01 ile aynı şekilde yayınlanır. Bu sürüme dahil edilen taahhütleri burada bulabilirsiniz.

Sürüm 2.1.0-beta01

7 Mayıs 2019

androidx.lifecycle:*:2.1.0-beta01 yayınlanır. Bu sürüme dahil edilen taahhütleri burada bulabilirsiniz.

Yeni özellikler

  • Yaşam döngüleri beta sürümüne geçirildi: Önceki alfa sürümlerinde kullanıma sunulan liveData dönüşümler ve gözlemler için uzantı işlevleri, ViewModel mülk yetkilendirmesi ile başlatma gibi API'ler kararlı hale getirildi ve değiştirilmeyecek.

Sürüm 2.1.0-alpha04

3 Nisan 2019

androidx.lifecycle:*:2.1.0-alpha04 yayınlanır. Bu sürümdeki kaydetmelere buradan ulaşabilirsiniz.

API değişiklikleri

  • Temel değişiklik: by viewModels() ve by activityViewModels()'un temel API'si, yalnızca ViewModelStoreOwner yerine doğrudan ViewModelStore'yi destekleyecek şekilde değiştirildi. (aosp/932932)

Sürüm 2.1.0-alpha03

13 Mart 2019

androidx.lifecycle:*:2.1.0-alpha03 yayınlanır. Bu sürüme dahil edilen taahhütlerin tam listesini burada bulabilirsiniz.

API değişiklikleri

  • ViewModelProvider.KeyedFactory kaldırıldı. ViewModelProvider.Factory ile birlikte ikinci arayüz, Kotlin by viewmodels {}'deki mülk yetkisi gibi yeni özelliklerle pek iyi sonuç vermedi. (aosp/914133)

Sürüm 2.1.0-alpha02

30 Ocak 2019

androidx.lifecycle 2.1.0-alpha02 yayınlanır.

API değişiklikleri

  • LifecycleRegistry artık desteği sonlandırılan setState() yönteminin yerini alan bir setCurrentState() yöntemi içeriyor. (aosp/880715)

Hata düzeltmeleri

  • İçerdiği ViewModelStore temizlendiğinde sahte ViewModel ö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 yayınlandı.

Yeni özellikler

  • Yaşam döngüsü etkinlikleri akışının gerekli olduğu durumlar için LifecycleEventObserver eklendi. Bu, gizli bir GenericLifecycleObserver sınıfı yerine herkese açık bir API'dir.
  • LiveData.observe yöntemleri ve Transformations.* yöntemleri için ktx uzantıları eklendi.
  • Transformations.distinctUntilChanged yöntemi eklendi. Kaynak LiveData değeri değiştirilene kadar değer yayınlamayan yeni bir LiveData nesnesi oluşturur.
  • ViewModels'de eş yordam desteği: ViewModel.viewModelScope uzantı özelliği eklendi.
  • create yönteminde key ve Class alan ViewModels için bir fabrika olan ViewModelProvider.KeyedFactory eklendi.

Sürüm 2.0.0

Sürüm 2.0.0

21 Eylül 2018

2.0.0 yaşam döngüsü, ViewModel'de 2.0.0-rc01 tarafından yapılan bir hata düzeltmesiyle yayınlandı.

Hata Düzeltmeleri

  • Oluşturucuları yanlış bir şekilde kaldıran bir ViewModel proguard kuralı düzeltildi b/112230489

Sürüm 2.0.0-beta01

2 Temmuz 2018

Hata Düzeltmeleri

  • LifecycleObserver proguard kuralı, alt arayüzleri değil yalnızca uygulamaları koruyacak şekilde düzeltildi b/71389427
  • Kod karartmaya ve daraltmaya izin veren ViewModel koruma kuralları düzeltildi

AndroidX öncesi sürümler

Yaşam Döngüsü'nü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"
}

1.1.1 sürümü

21 Mart 2018

Yalnızca bir küçük değişiklik: android.arch.core.util.Function, arch:runtime konumundan arch:common konumuna taşındı. Bu komut, çalışma zamanı bağımlılığı olmadan (ör. aşağıdaki paging:common ürününde) kullanılmasına olanak tanır.

lifecycle:common, lifecycle:runtime'un bir bağımlılığı olduğundan bu değişiklik lifecycle:runtime'u doğrudan etkilemez. Yalnızca Paging gibi doğrudan lifecycle:common'e bağlı olan modülleri etkiler.

1.1.0 sürümü

22 Ocak 2018

Paketleme Değişiklikleri

Artık çok daha küçük yeni bağımlılıklar mevcuttur:

  • android.arch.lifecycle:livedata:1.1.0
  • android.arch.lifecycle:viewmodel:1.1.0

API Değişiklikleri

  • Desteği sonlandırılan LifecycleActivity ve LifecycleFragment artık kaldırıldı. Lütfen FragmentActivity, AppCompatActivity veya Fragment desteğini kullanın.
  • @NonNull ek açıklaması ViewModelProviders ve ViewModelStores dosyalarına eklendi
  • ViewModelProviders kurucusunun desteği sonlandırıldı. Lütfen doğrudan statik yöntemlerini kullanın
  • ViewModelProviders.DefaultFactory desteği sonlandırıldı. Lütfen ViewModelProvider.AndroidViewModelFactory'u kullanın.
  • ViewModel ve AndroidViewModel örnekleri oluşturmaya uygun bir statik Factory almak için statik ViewModelProvider.AndroidViewModelFactory.getInstance(Application) yöntemi eklendi.