Yaşam döngüsü

Yaşam döngüsüne duyarlı bileşenler, başka bir bileşenin yaşam döngüsü durumundaki değişikliklere (ör. etkinlikler ve parçalar) yanıt olarak harekete geçer. Bu bileşenler, bakımı daha kolay olan daha düzenli ve genellikle daha hafif kodlar üretmenize yardımcı olur.

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

Yapı Kararlı Sürüm Serbest Bırakma Adayı Beta Sürümü Alfa Sürümü
yaşam döngüsü-* 2.7.0 - - 2.8.0-alpha03
yaşam döngüsü-görünümmodeli-oluşturma 2.7.0 - - 2.8.0-alpha03
Bu kitaplık en son 20 Mart 2024'te güncellendi.

Bağımlılıkları bildirme

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

Uygulamanızın veya modülünüz için build.gradle dosyasına ihtiyaç duyduğunuz yapıların bağımlılıklarını ekleyin:

Kotlin

Modern

    dependencies {
        def lifecycle_version = "2.7.0"
        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.7.0"
        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

Modern

    dependencies {
        def lifecycle_version = "2.7.0"
        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.7.0"
        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 edinmek için Derleme Bağımlılıkları Ekleme bölümüne bakın.

Geri bildirim

Geri bildiriminiz Jetpack'i daha iyi hale getirmemize yardımcı oluyor. Yeni sorunlar keşfederseniz veya bu kitaplığı nasıl geliştirebileceğimizle ilgili fikirleriniz varsa bize bildirin. Yeni bir sorun oluşturmadan önce lütfen bu kitaplıktaki mevcut sorunlara göz atın. Yıldız düğmesini tıklayarak mevcut bir soruna oyunuzu ekleyebilirsiniz.

Yeni sayı oluşturma

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

Sürüm 2.8

Sürüm 2.8.0-alpha03

20 Mart 2024

androidx.lifecycle:lifecycle-*:2.8.0-alpha03 yayınlandı. 2.8.0-alpha03 sürümü bu kayıtları içerir.

Yeni Özellikler

  • ViewModel.viewModelScope artık geçersiz kılınabilir bir kurucu parametresidir. Bu parametre, kendi görev dağıtıcınızı ve SupervisorJob()'yi eklemenize veya runTest içinde bulunan backgroundScope yardımıyla 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 Çoklu Platform Uyumluluğu

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

Bu değişikliğe uyum sağlamak amacıyla, 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 sahiptir.

Android'de ikili program uyumluluğu korunmuştur, ancak Android API yüzeyi ortak API yüzeyiyle karşılaştırılırken dikkate değer birkaç değişiklik vardır:

  • ViewModelProvider örneği oluşturma işlemi artık oluşturucusunu doğrudan çağırmak yerine ViewModelProvider.create() yöntemleriyle yapılıyor.
  • ViewModelProvider.NewInstanceFactory ve ViewModelProvider.AndroidViewModelFactory yalnızca Android'de kullanılabilir.
    • Özel Fabrikalar'ın ViewModelProvider.Factory tarihinden başlayarak CreationExtras alan create yöntemini veya viewModelFactory Kotlin DSL'yi kullanması önerilir.
  • JVM harici platformlarda özel bir fabrika olmadan ViewModelProvider kullanılması UnsupportedOperationException sonucunu verir. JVM platformlarında, özel fabrika sağlanmamışsa bağımsız değişken içermeyen ViewModel kurucusu kullanılarak uyumluluk korunur.
  • viewModelScope, Dispatchers.Main özelliğinin kullanılamadığı platformlarda (ör.EmptyCoroutineContext Linux).

Davranış Değişiklikleri

  • Aynı clazz: KClass<VM : ViewModel> değerine sahip bir initializer zaten eklenmişse InitializerViewModelFactory (viewModelFactory oluşturucu işlevi dahil) artık bir IllegalArgumentException döndürür. (Ic3a36)

Hata Düzeltmeleri

  • ViewModel.getCloseable artık yinelenen anahtarları işliyor: key ile ilişkilendirilmiş bir AutoCloseable kaynağı zaten varsa eski kaynak değiştirilir ve hemen kapatılır. (Ibeb67)
  • Bir ViewModel öğesinin viewModelScope öğesine erişmek artık iş parçacığı güvenlidir. (If4766, b/322407038)

Harici Katkı

  • LocalLifecycleOwner, Compose kullanıcı arayüzünün dışında kullanılabilmesi için Compose kullanıcı arayüzünden yaşam döngüsü çalışma zamanı oluşturma moduna taşındı. Katkılarından dolayı Jake Wharton'a teşekkür ederiz. (I6c41b, b/328263448)

Sürüm 2.8.0-alpha02

21 Şubat 2024

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

Yeni Özellikler

  • LifecycleOwner, belirtilen Lifecycle.State değerinin altına düştükten sonra bile tıklama etkinliği veya başka etkinliklerde bulunmanıza olanak tanıyan dropUnlessResumed ve dropUnlessStarted API'leri eklendi. Örneğin, bu özellik başka bir ekrana geçiş başladıktan sonra tıklama etkinliklerinin işlenmesini önlemek için Gezinmede Yazma ile kullanılabilir: onClick: () -> Unit = dropUnlessResumed { navController.navigate(NEW_SCREEN) } (Icba83, b/317230685)

Kotlin Dönüşümleri

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

Kotlin Çoklu Platform Uyumluluğu

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

API Değişiklikleri

  • Bu API'lerin yansıttığı DisposableEffect API ile aynı kural uygulanarak LifecycleStartEffect ve LifecycleResumeEffect çağrılarının anahtar olmadan yapılması artık bir hatadır. (Ib0e0c, b/323518079)
  • ViewModel artık Closeable yerine AutoCloseable kullanıyor. Bu, geriye dönük uyumlu bir değişikliktir. (I27f8e, b/214568825)
  • LiveData.toPublisher(lifecycleOwner) için sunulan LiveDataReactiveStreams.toPublisher(lifecycleOwner, liveData) desteği sonlandırıldı. (Iabe29, b/262623005)

Harici Katkı

  • Yaşam döngüsünü Kotlin Multiplatform'a taşımamıza yardımcı olan Jetbrains'ten Ivan Matkov'a teşekkür ederiz. (aosp/2926690, I0c5ac, If445d)

Sürüm 2.8.0-alpha01

24 Ocak 2024

androidx.lifecycle:lifecycle-*:2.8.0-alpha01 yayınlandı. 2.8.0-alpha01 sürümü bu kayıtları içerir.

Yeni Özellikler

  • ViewModel artık getCloseable() aracılığıyla alınmaya olanak tanıyan key ile Closeable nesnelerin eklenmesini destekliyor. (I3cf63)

Sürüm 2.7

Sürüm 2.7.0

10 Ocak 2024

androidx.lifecycle:lifecycle-*:2.7.0 yayınlandı. 2.7.0 sürümü bu kayıtları içerir.

2.6.0'dan sonraki önemli değişiklikler

  • TestLifecycleOwner artık, durum değişikliğini ve tüm LifecycleObserver geri çağırma işlemlerinin geri dönmeden önce tamamlanmasını sağlayan setCurrentState() askıya alma işlevini içeriyor. Özellikle currentState özelliğini doğrudan ayarlamanın aksine bu, runBlocking kullanmaz. Böylece runTest tarafından sağlanan gibi bir eş değerde kullanımı güvenli hale gelir.
  • map ve switchMap uzantıları artık distinctUntilChanged özelliğinin davranışını yansıtmaktadır. LiveData öğesinin bir value grubu varsa döndürülen LiveData öğesinin value öğesini doldurmak için map/switchMap işlevi hemen çağrılır.LiveData Bu, başlangıç değerinin ilk bestenin bir parçası olarak ayarlanmasını sağlar (observeAsState() ile kullanıldığında), ancak gözlem davranışını değiştirmez. LiveData kaynağından gelen güncellemeler değerleri yalnızca LiveData öğesini gözlemlemeye başlamanızdan sonra uygulanır.
  • Bu sürümde, işlem ölümü ve yeniden oluşturma sonrasında SavedStateHandle ürününün özel Parcelable sınıflarını düzgün bir şekilde geri yüklememesine neden olan bir sorun giderilmiştir. Android çerçevesi tarafından kaybolan tür bilgileri nedeniyle, özel Parselable dizileri için ek çalışma yapılması (manuel olarak doğru türde bir dizi oluşturulması) gerekir ve get, getLiveData ile getStateFlow alanlarındaki dokümanlarda artık bu sınırlama özel olarak belirtilmektedir.
  • LifecycleObserver ile ilişkili ProGuard Keep kuralları kaldırıldı. Yansıma yoluyla API'leri kullanmak isteyen korumalı kodun (kullanımdan kaldırılan uzun @OnLifecycleEvent ek açıklamasını kullanma gibi) kendi kullanım alanları için kendi Keep kurallarını sağlaması gerekir.

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

  • LifecycleEventObserver kullanımına alternatif olarak artık Lifecycle.asFlow() uzantısı yöntemiyle Lifecycle.Event Flow gözlemleyebilirsiniz.
  • Jetpack Compose kullanıcıları artık Lifecycle.Event ile ilgili Compose yan efektlerini ç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ı LifecycleStartEffect ve LifecycleResumeEffect kullanarak sırasıyla durdurulmaya başlanan ve duraklatılmış olarak devam ettirilen etkinlik çiftlerini kullanabilir. Bu API, DisposableEffect API'sinde bulunan API'yi yansıtır ve durum yükselirken yapılan değişikliğin tekrar eski haline döndürülmesi gerektiği 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ü olaylarında kod çalıştırma başlıklı makaleyi inceleyin.

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

  • Geçerli Lifecycle.State artık Lifecycle.currentStateFlow özelliği aracılığıyla gözlemlenebilir. Bu özellik, StateFlow değerini döndürür; burada value, geçerli Lifecycle.State olur.
  • Jetpack Compose kullanıcıları Lifecycle.State öğelerini 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ınlandı. 2.7.0-rc02 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

  • SavedStateHandle ürününün, işlem ölümü ve yeniden oluşturma sonrasında özel Parcelable sınıflarını düzgün şekilde geri yüklememesine neden olan sorun düzeltildi. Android çerçevesi tarafından kaybolan tür bilgileri nedeniyle, özel Parselable dizileri için ek çalışma yapılması (manuel olarak doğru türde bir dizi oluşturulması) gerekir ve get, getLiveData ile getStateFlow alanlarındaki dokümanlarda artık bu sınırlama özel olarak belirtilmektedir. (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 kayıtları içerir.

Hata Düzeltmeleri

  • LifecycleOwner değiştirilirse LifecycleStartEffect ve LifecycleResumeEffect, efekt bloğunu artık düzgün şekilde ortadan kaldırır ve yeniden oluşturur. (Ia25c6)

Sürüm 2.7.0-beta01

1 Kasım 2023

androidx.lifecycle:lifecycle-*:2.7.0-beta01, hiçbir değişiklik yapılmadan serbest bırakıldı. 2.7.0-beta01 sürümü bu kayıtları içerir.

  • Beta sürüm güncellemesi, bu sürümde önemli bir değişiklik yoktur.

Sürüm 2.7.0-alpha03

18 Ekim 2023

androidx.lifecycle:lifecycle-*:2.7.0-alpha03 yayınlandı. 2.7.0-alpha03 sürümü bu kayıtları içerir.

Yeni Özellikler

  • lifecycle-runtime-testing, bir eş yordasının içindeyken currentState alanını kullanarak TestLifecycleOwner için Lifecycle.State ayarlanmaması için yeni bir Lint denetimi içeriyor. Lint kontrolü şimdi Lifecycle.State öğesinin engellemeden ayarlanmasına olanak tanıyan setCurrentState askıya alma işlemini öneriyor. (Icf728, b/297880630)

Hata Düzeltmeleri

  • Hem ilk çağrıda hem de sonraki çağrıda aynı LiveData örneğini döndürmenin LiveData örneğinin kaynak olarak eklenmesini engellemesine neden olan LiveData.switchMap sorunu 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 kayıtları içerir.

Yeni Özellikler

  • TestLifecycleOwner artık kullanıcılara TestLifecycleOwner uygulamasını runTest tarafından sağlanan gibi bir eş yordamdan kullanma seçeneği sunmak için 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

  • Önceki LiveData için belirlenmiş bir değer olması halinde LiveData.map() ve LiveData.switchMap() uzantıları, artık döndürülen LiveData öğesinin value değerini ayarlıyor. Böylece, Jetpack Compose'da elde edilen LiveData verileri ilk bestede doğru şekilde kullanılmış oluyor. (I91d2b, b/269479952)
  • ViewModel adlı operatör onCleared() numarasına bir arama almışsa ViewModel adlı kullanıcının addCloseable() özelliği artık Closeable öğesini hemen kapatıyor. (I4712e, b/280294730)

Hata Düzeltmeleri

  • Yaşam döngüsü 2.6.2'nde: İşlem geri alınmasından sonra SavedStateHandle öğesinin doğru şekilde geri yüklenmemesine neden olan sorun giderildi. Durum geri yüklenirse save(), SavedStateRegistry üst öğesindeki durum kaydedilmeden çağrılır ve ardından durum yeniden geri yüklenir. Bu işlem, rememberSaveable ile Gezinme'de Yazma'nın NavHost özelliği 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ınlandı. 2.7.0-alpha01 sürümü bu kayıtları içerir.

API Değişiklikleri

  • Lifecycle.State artık Lifecycle.currentStateFlow üzerinden Oluşturma ile gözlemlenebilir. Bu da value değerinin geçerli Lifecycle.State olduğu bir StateFlow döndürür. (Ib212d, b/209684871)
  • Lifecycle.Event öğeleri artık Lifecycle.asFlow(). ile Flow olarak gözlemlenebilir (If2c0f, b/176311030)
  • Lifecycle.Event.ON_RESUME ve Lifecycle.Event.ON_PAUSE etkinlik geri çağırmalarına göre Compose SideEffect'leri ç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 göre SideEffect Compose'ları çalıştırmak için LifecycleStartEffect API eklendi. (I5a8d1, b/235529345)
  • Lifecycle.Event temel alınarak SideEffect oluşturma işlemlerini çalıştırmak üzere LifecycleEventEffect API eklendi. (Ic9794, b/235529345)
  • Lifecycle.State öğesini doğrudan Oluştur State olarak gösterecek 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

  • Önceki LiveData için belirlenmiş bir değer varsa LiveData.distinctUntilChanged() uzantısı, artık döndürülen LiveData öğesinin value özelliğini ayarlıyor. Bu durum, gözlem davranışını değiştirmez. LiveData kaynağına ait güncellenmiş değerler, yalnızca distinctUntilChanged() öğesinden döndürülen LiveData gözlemlemeye başlamanızdan sonra geçerli olacaktır. (Ib482f)
  • LifecycleObserver ile ilişkili ProGuard Keep kuralları kaldırıldı. Bu nedenle, API'leri yansıma yoluyla kullanmak isteyen korumalı kodun, kendi özel kullanım alanları için kendi Keep kurallarını sağlaması gerekir. (Ia12fd)

Sürüm 2.6

Sürüm 2.6.2

6 Eylül 2023

androidx.lifecycle:lifecycle-*:2.6.2 yayınlandı. 2.6.2 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

  • Durum geri yüklendiyse işlem ölümünden sonra SavedStateHandle öğesinin doğru şekilde geri yüklenmemesine, SavedStateRegistry üst öğesinde durum kaydedilmeden save() çağrılmasına ve ardından durumun yeniden geri yüklenmesine neden olan sorun düzeltildi. Bu işlem, rememberSaveable ile Gezinme'de Yazma'nın NavHost özelliği arasındaki etkileşimi düzeltir. (aosp/2729289)

Sürüm 2.6.1

22 Mart 2023

androidx.lifecycle:lifecycle-*:2.6.1 yayınlandı. Sürüm 2.6.1 bu kayıtları içerir.

Bağımlılık Güncellemeleri

Sürüm 2.6.0

8 Mart 2023

androidx.lifecycle:lifecycle-*:2.6.0 yayınlandı. 2.6.0 sürümü bu kayıtları içerir.

2.5.0'dan sonraki önemli değişiklikler

  • LiveData artık LiveData üzerinde belirli bir değerin ayarlanıp ayarlanmadığını gösteren yeni bir isInitialized özelliği içeriyor. Bu özellik, hiç değer ayarlanmadığı için null değerini döndüren liveData.value ile açık bir null değeri arasında ayrım yapmanıza olanak tanıyor.
  • MediatorLiveData artık başlangıç değeri ayarlamak için bir kurucu içeriyor.
  • Akışlardan toplanan ve en son değerini, yaşam döngüsüne duyarlı bir şekilde Oluşturma Durumu olarak gösteren collectAsStateWithLifecycle() adlı uzantının StateFlow ve Flow sürümüne yeni bir uzantı eklendi.
  • Sevk görevlisini duraklatmak bazı durumlarda kaynakların boşa harcanmasına yol açabileceğinden Lifecycle.launchWhenX yöntemleri ve Lifecycle.whenX yöntemleri kullanımdan kaldırılmıştır. Lifecycle.repeatOnLifecycle kullanmanız önerilir. Bir kerelik çalışma askıya alma hakkında daha fazla bilgi için, bunun doğası gereği neden güvenli olmadığıyla ilgili 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ın ikili program uyumluluğu önceki sürümlerle korunur. Şu 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üne ilişkin kaynak dönüşümler gösterilmektedir.

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 için onChanged yönteminin geçersizliği, artık genel türün boş değerliliğiyle eşleşiyor. Observer.onChanged() öğesinin null özellikli bir türü kabul etmesini istiyorsanız Observer öğesini null özellikli bir türle örneklendirmeniz gerekir.
  • Şu sınıflar da Kotlin'e dönüştürülmüştür ancak kaynak uyumluluğu devam etmektedir: 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ınlandı. 2.6.0-rc01 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

  • Önceki LiveData için belirlenmiş bir değer varsa LiveData.distinctUntilChanged() uzantısı, artık döndürülen LiveData öğesinin value özelliğini ayarlıyor. Bu durum, gözlem davranışını değiştirmez. LiveData kaynağına ait güncellenmiş değerler, yalnızca distinctUntilChanged() öğesinden döndürülen LiveData gözlemlemeye başlamanızdan sonra geçerli olacaktır. (Ib482f)

Sürüm 2.6.0-beta01

8 Şubat 2023

androidx.lifecycle:lifecycle-*:2.6.0-beta01 yayınlandı. 2.6.0-beta01 sürümü bu kayıtları içerir.

Kotlin Dönüşümleri

  • LifecycleOwner artık Kotlin dilinde yazılmıştır. Bu, Kotlin'de yazılan sınıflar için kaynakla uyumlu olmayan bir değişikliktir. Önceki getLifecycle() işlevini uygulamak yerine artık lifecycle özelliğini geçersiz kılması gerekir. (I75b4b, b/240298691)
  • ViewModelStoreOwner artık Kotlin'de. Bu, Kotlin'de yazılan sınıflar için kaynakla uyumlu olmayan bir değişikliktir. Önceki getViewModelStore() işlevini uygulamak yerine artık viewModelStore özelliğini geçersiz kılması gerekir. (I86409, b/240298691)
  • LifecycleOwner ürününde lifecycleScope alanını sağlayan Kotlin uzantısı, lifecycle-runtime-ktx konumundan lifecycle-common yapısına taşındı. (I41d78, b/240298691)
  • Lifecycle ürününde coroutineScope alanını sağlayan Kotlin uzantısı, lifecycle-runtime-ktx konumundan lifecycle-common yapısına 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 kayıtları içerir.

Kotlin Dönüşümleri

  • Transformations artık Kotlin dilinde yazılmıştır. Bu, doğrudan Transformations.map gibi söz dizimini kullanan Kotlin'de yazılmış 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 kullanan sürümleri kullanımdan kaldırılır ve bunların yerini Kotlin Function1 alan sürümler alır. Bu değişiklik ikili uyumluluğu korur. ()
  • ViewTreeViewModelStoreOwner artık Kotlin dilinde yazılmıştır. Bu, Kotlin'de yazılmış sınıflar için kaynakla uyumlu olmayan bir değişikliktir. Önceden ayarlanmış bir sahip belirlemek ve bulmak için artık androidx.lifecycle.setViewTreeViewModelStoreOwner ve androidx.lifecycle.findViewTreeViewModelStoreOwner öğelerinin View üzerindeki Kotlin uzantısı yöntemlerini doğrudan içe aktarıp kullanmanız gerekiyor. Bu, ikili program ile uyumludur ve Java programlama dilinde yazılan uygulamalar için kaynak uyumlu olmaya devam etmektedir. (Ia06d8, Ib22d8, b/240298691)
  • HasDefaultViewModelProviderFactory arayüzü artık Kotlin dilinde yazılmıştır. Bu, Kotlin'de yazılan sınıflar için kaynakla uyumlu olmayan bir değişikliktir. Önceki ilgili işlevleri uygulamak yerine artık defaultViewModelProviderFactory ve defaultViewModelCreationExtras özelliklerini geçersiz kılmaları gerekmektedir. (Iaed9c, b/240298691)
  • Observer artık Kotlin dilinde yazılmıştır. 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 dilinde (I2e771, Ibae40, I160d7, I08884, I1cda7, b/240298691) yazılmış durumda.{/16

Sürüm 2.6.0-alpha04

11 Ocak 2023

androidx.lifecycle:lifecycle-*:2.6.0-alpha04 yayınlandı. 2.6.0-alpha04 sürümü bu kayıtları içerir.

Yeni Özellikler

  • LiveData artık LiveData üzerinde belirli bir değerin ayarlanıp ayarlanmadığını gösteren yeni bir isInitialized özelliği içeriyor. Bu özellik, hiç değer ayarlanmadığı için null değerini döndüren liveData.value ile açık bir null değeri arasında ayrım yapmanıza olanak tanıyor. (İbd018)

API Değişiklikleri

  • lifecycle-runtime-compose uygulamasının collectAsStateWithLifecycle() API'leri artık deneme durumunda değil. (I09d42, b/258835424)
  • Sevk görevlisini duraklatmak bazı durumlarda kaynakların boşa harcanmasına yol açabileceğinden Lifecycle.launchWhenX yöntemleri ve Lifecycle.whenX yöntemleri kullanımdan kaldırılmıştır. Lifecycle.repeatOnLifecycle kullanmanız önerilir. (Iafc54, b/248302832)

Kotlin Dönüşümleri

  • ViewTreeLifecycleOwner artık Kotlin dilinde yazılmıştır. Bu, Kotlin'de yazılmış sınıflar için kaynakla uyumlu olmayan bir değişikliktir. Önceden ayarlanmış bir sahip belirlemek ve bulmak için artık androidx.lifecycle.setViewTreeLifecycleOwner ve androidx.lifecycle.findViewTreeLifecycleOwner öğelerinin View üzerindeki Kotlin uzantısı yöntemlerini doğrudan içe aktarıp kullanmanız gerekiyor. Bu, lifecycle-runtime-ktx içinde önceki Kotlin uzantısının yerini alır. Bu, ikili program ile uyumludur ve Java programlama dilinde yazılan uygulamalar için kaynak uyumlu olmaya devam etmektedir. (I8a77a, I5234e, b/240298691)
  • LiveDataReactiveStreams artık Kotlin dilinde yazılmıştır. Önceden lifecycle-reactivestreams-ktx sürümündeki Kotlin uzantıları lifecycle-reactivestreams modülüne taşındı ve Kotlin'de yazılan kodun birincil platformu oldu. Bu, halihazırda Kotlin uzantı yöntemi API'lerini kullanmıyorsanız Kotlin'de yazılmış kod için kaynakla uyumlu olmayan bir değişikliktir. (I2b1b9, I95d22, b/240298691)
  • DefaultLifecycleObserver, LifecycleEventObserver, Lifecycle, LifecycleRegistry, LifecycleObserver ve ViewModelStore artık Kotlin dilinde yazıldı (Iadffd, (I60034, I8c52c, I9593d, I01fe1, I59b/29}a29}a23})

Hata Düzeltmeleri

  • SavedStateHandle artık yanlış sınıf türüyle get() çağrılırken 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 kayıtları içerir.

Hata Düzeltmeleri

  • Amaçlandığı gibi çalışmayan farklı Yaşam Döngüsü modülleri arasındaki kısıtlamalarla ilgili bir sorun giderildi. (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ınlandı. 2.6.0-alpha02 sürümü bu kayıtları içerir.

API Değişiklikleri

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

Hata Düzeltmeleri

  • Lifecycle yapıları artık, birbirine bağımlı tüm Yaşam Döngüsü yapılarının aynı sürümü kullanmasını sağlayan ve bir sürüm yükseltildiğinde diğer bağımlılıkları otomatik olarak yükselten kısıtlamalar içeriyor. b/242871265
  • FlowLiveData.asFlow(), iş parçacığı güvenliğini ve bağlamın korunmasını sağlamak için artık kendi Channel uygulamasını kullanmak yerine bir callbackFlow oluşturuyor. (I4a8b2, b/200596935)
  • FlowLiveData'in asLiveData işlevi, yeni LiveData nesnesini oluştururken artık StateFlow öğesinin başlangıç değerini koruyacak. (I3f530, b/157380488)
  • Yaşam döngüsü 2.5.1'nden: AndroidViewModelFactory özel uygulamaları, Lifecycle 2.4+ (I5b315, b/238011621) ile durum bilgili oluşturucuyu 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ınlandı. 2.6.0-alpha01 sürümü bu kayıtları içerir.

Yeni Özellikler

  • StateFlow ve Flow için, akışlardan toplanan ve en son değerini yaşam döngüsüne duyarlı bir şekilde Oluşturma Durumu olarak gösteren yeni bir uzantı eklendi. collectAsStateWithLifecycle Yaşam döngüsü en azından belirli bir Lifecycle.State içinde olduğunda akış toplanır ve yeni emisyon, Eyaletin değerine ayarlanır. Yaşam döngüsü Lifecycle.State bu değerin altına düştüğünde akış toplama işlemi durur ve Eyalet değeri güncellenmez. (I1856e, b/230557927)

Sürüm 2.5

Sürüm 2.5.1

27 Temmuz 2022

androidx.lifecycle:lifecycle-*:2.5.1 yayınlandı. Sürüm 2.5.1 bu kayıtları içerir.

Hata Düzeltmeleri

  • AndroidViewModelFactory özel uygulamaları, Lifecycle 2.4+ ile durum bilgili AndroidViewModelFactory oluşturucusu kullanıldığında artık create(modelClass) işlevini doğru şekilde çağırıyor. (I5b315, b/238011621)

Sürüm 2.5.0

29 Haziran 2022

androidx.lifecycle:lifecycle-*:2.5.0 yayınlandı. Sürüm 2.5.0 bu kayıtları içerir.

2.4.0'dan sonraki önemli değişiklikler

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

  • ViewModel CreationExtras: Özel bir ViewModelProvider.Factory yazarken, artık Application veya SavedStateHandle öğesine erişim elde etmek için AndroidViewModelFactory veya AbstractSavedStateViewModelFactory öğesini genişletmeniz gerekmiyor. Bunun yerine şu alanlar, yeni create aşırı yükü aracılığıyla 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 Parça 1.5.0 kullanılırken Etkinlik veya Parça 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 ViewModelProvider.Factory'nizi bir veya daha fazla lambda başlatıcısı ile tanımlamanızı sağlayan viewModelFactory Kotlin DSL sunuyor. Bu, özel fabrikanızın desteklediği her bir ViewModel sınıfı için bir tane olmak üzere, birincil veri kaynağı olarak CreationExtras kullanı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şturulmasına gerek kalmadan ViewModel örneği oluşturmak için lambda fabrikasını kullanan bir viewModel() API'si 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 Tasarrufu Entegrasyonu: lifecycle-viewmodel-compose yapısı artık SavedStateHandle.saveable içinde bir `ViewModel.rememberSaveableSavedStateHandle

    class ListScreenViewModel(handle: SavedStateHandle): ViewModel() {
        // This value survives both configuration changes and process death and recreation
        val editMode by handle.saveable { mutableStateOf(false) }
    }
    
  • Bir addCloseable() API'sinin yanı sıra ViewModel öğesine bir veya daha fazla Closeable nesnesi eklemenize olanak tanıyan yeni oluşturucu yükü eklendi. Bu nesne, ViewModel temizlendiğinde onCleared() içinde herhangi bir manuel çalışma gerektirmeden kapatılacak.

    Örneğin, ViewModel'e yerleştirebileceğiniz ancak test yoluyla kontrol edebileceğiniz bir eş yordam kapsamı oluşturmak için Closeable 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()
       }
    }
    

    Ardından bu öğe, viewModelScope ile aynı kullanım ömrünü korurken ViewModel oluşturucunuzda kullanılabilir:

    class TestScopeViewModel(
        val customScope: CloseableCoroutineScope = CloseableCoroutineScope()
    ) : ViewModel(customScope) {
        // You can now use customScope in the same way as viewModelScope
    }
    

Davranış değişiklikleri

  • Lifecycle.State öğesini INITIALIZED konumundan DESTROYED konumuna taşımaya çalışıldığında artık Lifecycle öğesine eklenmiş bir gözlemci olup olmamasından bağımsız olarak her zaman IllegalStateException hatası gönderilir.
  • LifecycleRegistry, artık DESTROYED durumuna ulaştığında gözlemcilerini temizler.

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 kayıtları içerir.

Hata Düzeltmeleri

  • derOnly Yaşam Döngüsü bağımlılıklarının önceki sürümleri 2.5 ve sonraki sürümlerle karıştırılırken ViewModelProvider 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ınlandı. 2.5.0-rc01 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

  • MediatorLiveData.addSource(), null kaynağını gözlemcilere iletmek yerine artık bir null kaynağı ilettiğinde NullPointerException atar.(Ibd0fb, b/123085232)

Sürüm 2.5.0-beta01

20 Nisan 2022

androidx.lifecycle:lifecycle-*:2.5.0-beta01 yayınlandı. 2.5.0-beta01 sürümü bu kayıtları içerir.

API Değişiklikleri

  • SavedStateHandle ürününe kalıcı durum için özellik adlarını anahtar olarak kullanmak üzere SavedStateHandle.saveable mülk yetkileri eklendi (I8bb86, b/225014345)

Hata Düzeltmeleri

  • Birincil olmayan alt gezinme sekmesinde bir NavHost öğesini başka bir NavHost içine yerleştirmenin, birden fazla arka yığın kullanılırken IllegalStateException öğesine neden olması sorunu düzeltildi. (I11bd5, b/228865698)

Sürüm 2.5.0-alpha06

6 Nisan 2022

androidx.lifecycle:lifecycle-*:2.5.0-alpha06 yayınlandı. Sürüm 2.5.0-alpha06 bu kayıtları içerir.

Yeni Özellikler

  • rememberSaveable ile eşdeğer olması için SavedStateHandle.saveable öğesine deneysel MutableState aşırı yükünü ekleyin (I38cfe, b/224565154)

API Değişiklikleri

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

Hata Düzeltmeleri

  • SavedStateHandleController kaynaklı 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ınlandı. 2.5.0-alpha05 sürümü bu kayıtları içerir.

Yeni Özellikler

  • lifecycle-viewmodel-compose modülünde artık SavedStateHandleSaver adlı deneysel bir API bulunmaktadır. Bu deneysel API, SavedStateHandle içindeki değerlerin, rememberSaveable ile aynı kayıtlı örnek durumuyla doğru şekilde entegre edilmesini sağlar. (Ia88b7, b/195689777)

API Değişiklikleri

  • Java'daki Lifecycle 2.3 ve daha yeni Yaşam Döngüsü sürümleriyle ilgili bir uyumluluk sorunu giderildi. (I52c8a, b/219545060)

Hata Düzeltmeleri

  • SavedStateViewFactory artık SavedStateRegistryOwner ile başlatıldığında bile CreationExtras kullanımını destekliyor. Ekstralar sağlanırsa başlatılan bağımsız değişkenler yoksayılır. (I6c43b, b/224844583)

Sürüm 2.5.0-alpha04

9 Mart 2022

androidx.lifecycle:lifecycle-*:2.5.0-alpha04 yayınlandı. Sürüm 2.5.0-alpha04 bu kayıtları içerir.

API Değişiklikleri

  • SavedStateHandle, artık LiveData kullanımına alternatif olarak değer değişikliklerini izlemek için Kotlin StateFlow döndüren bir getStateFlow() API sunuyor. (Iad3ab, b/178037961)

Sürüm 2.5.0-alpha03

23 Şubat 2022

androidx.lifecycle:lifecycle-*:2.5.0-alpha03 yayınlandı. 2.5.0-alpha03 sürümü bu kayıtları içerir.

Yeni Özellikler

  • Bir addCloseable() API'si ve ViewModel öğesine bir veya daha fazla Closeable nesnesi eklemenize olanak tanıyan yeni bir oluşturucu aşırı yüklemesi eklendi. Bu nesne, ViewModel öğesi onCleared() içinde manuel çalışma yapılmadan silindiğinde kapatılacak. (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 sunuyor. (If58fc, b/216687549)
  • lifecycle-viewmodel-compose, artık özel bir ViewModelProvider.Factory oluşturulmasına gerek kalmadan ViewModel örneği oluşturmak için lambda fabrikasını kullanan bir viewModel() API sunuyor. (I97fbb, b/216688927)

API Değişiklikleri

  • Artık lifecycle-viewmodel-compose aracılığıyla CreationExtras ile bir ViewModel oluşturabilirsiniz. (I08887, b/216688927)

Davranış değişiklikleri

  • Lifecycle.State öğesini INITIALIZED konumundan DESTROYED konumuna taşımaya çalışıldığında artık Lifecycle öğesine eklenmiş bir gözlemci olup olmamasından bağımsız olarak her zaman IllegalStateException hatası gönderilir. (I7c390, b/177924329)
  • LifecycleRegistry, DESTROYED durumuna ulaştıklarında gözlemcilerini temizler. (I4f8dd, b/142925860)

Sürüm 2.5.0-alpha02

9 Şubat 2022

androidx.lifecycle:lifecycle-*:2.5.0-alpha02 yayınlandı. 2.5.0-alpha02 sürümü bu kayıtları içerir.

API Değişiklikleri

  • SavedStateHandle ve SavedStateViewModelFactory, Kotlin'e dönüştürüldü. Bu, her iki sınıftaki genel öğelerin boş atanabilirliğini artırdı. (Ib6ce2, b/216168263, I9647a, b/177667711)
  • LiveData switchMap işlev parametresi artık null özellikli bir çıkışa sahip olabilir. (I40396, b/132923666)
  • LiveData -ktx uzantıları, sonucun bu işlevler çağrılırken kullanılmasını sağlamak için artık @CheckResult ile ek açıklamaya sahip. (Ia0f05, b/207325134)

Davranış değişiklikleri

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

Hata Düzeltmeleri

  • Yaşam Döngüsü 2.4.1 ürününden: ProcessLifecycleInitializer ürününün StartupException öğesi oluşturmasını 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)
  • Artık özel AndroidViewModel sınıflarının parametreleri yanlış sırada olduğunda ve ViewModel oluşturmaya çalışıldığında iyileştirilmiş hata mesajı gösteriliyor. (I340f7, b/177667711)
  • Artık AndroidViewModelFactory kullanarak herhangi bir uygulama ayarlamadan CreationExtras aracılığıyla bir görünüm modeli oluşturabilirsiniz. (I6ebef, b/217271656)

Sürüm 2.5.0-alpha01

26 Ocak 2022

androidx.lifecycle:lifecycle-*:2.5.0-alpha01 yayınlandı. 2.5.0-alpha01 sürümü bu kayıtları içerir.

ViewModel CreationExtras

Bu sürümle, bir ViewModel yapısının yeniden yapılandırılmasının zeminini oluşturuyoruz. Her biri ek işlevler ekleyen sabit bir ViewModelProvider.Factory alt sınıfları grubu yerine (AndroidViewModelFactory aracılığıyla bir Application oluşturucu parametresine izin verir, SavedStateViewModelFactory ve AbstractSavedStateViewModelFactory vb. üzerinden SavedStateHandle kurucu parametresine izin verir), CreationExtras adlı yeni bir kavramı temel alan durum bilgisiz fabrikalar dünyasına geçiyoruz. (Ia7343, b/188691010, b/188541057)

Bu değişiklikle birlikte ViewModelProvider artık önceki create(Class<T>) ViewModelProvider.Factory yöntemine doğrudan arama yapmayacak. Bunun yerine, yeni bir create aşırı yükünü çağırır: create(Class<T>, CreationExtras). Diğer bir deyişle, ViewModelProvider.Factory örneğinin herhangi bir doğrudan uygulaması artık bu yeni CreationExtras öğelerinin her birine erişebilir:

  • ViewModelProvider.NewInstanceFactory.VIEW_MODEL_KEY: Bu String, ViewModelProvider.get() öğesine 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 öğesine erişim sağlar.
  • SavedStateHandleSupport.VIEW_MODEL_STORE_OWNER_KEY, bu ViewModel'i oluşturmak için kullanılan ViewModelStoreOwner öğesine erişim sağlar.
  • SavedStateHandleSupport.DEFAULT_ARGS_KEY, bir SavedStateHandle oluşturmak için kullanılması gereken bağımsız değişkenlerin Bundle öğesine erişim sağlar.

Etkinlik 1.5.0-alpha01, Parça 1.5.0-alpha01 ve Gezinme 2.5.0-alpha01 kullanılırken bu ekstralar varsayılan olarak sağlanır. Bu kitaplıkların eski bir sürümünü kullanırsanız CreationExtras öğeniz boş olur. Mevcut tüm ViewModelProvider.Factory alt sınıfları, hem bu kitaplıkların önceki sürümleri tarafından kullanılan eski oluşturma yolunu hem de ileride kullanılacak CreationExtras yolunu desteklemek için yeniden yazılmıştır.

Bu CreationExtras, katı bir Fabrika alt sınıfları hiyerarşisine bağlı kalmadan her bir ViewModel öğesine yalnızca ihtiyacınız olan 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
    }
}

CreationExtras için SavedStateHandleSupport ile birlikte createSavedStateHandle() Kotlin uzantı işlevini kullanarak yalnızca buna ihtiyaç duyan bir ViewModel için SavedStateHandle oluştururuz. (Ia6654, b/188541057)

Özel CreationExtras, ComponentActivity veya Fragment içinde getDefaultViewModelCreationExtras() öğesinin geçersiz kılınmasıyla sağlanabilir. Böylece bu özel ViewModelProvider.Factory, yerleşik destekli ekleme biçiminde kullanılabilir. Bu ek özellikler, doğrudan ViewModelProvider ile birlikte ya da by viewModels() ve by activityViewModels() Kotlin özellik uzantıları kullanıldığında özel Fabrikanızda otomatik olarak kullanıma sunulur. (I79f2b, b/207012584, b/207012585, b/207012490)

Hata Düzeltmeleri

  • Bir SavedStateHandle öğesine sağlanan varsayılan değerin, SavedStateHandle öğesinden özel olarak kaldırılmış olsa bile işlem ölümü ve yeniden oluşturma sonrasında tekrar görünmesine neden olan sorun düzeltildi. Bunun sonucunda SavedStateHandle, artık varsayılan değerleri ve geri yüklenen değerleri birleştirmez. Bunun yerine, yalnızca bilgi kaynağı olarak geri yüklenen değerleri kullanır. (I53a4b)

Sürüm 2.4

Sürüm 2.4.1

9 Şubat 2022

androidx.lifecycle:lifecycle-*:2.4.1 yayınlandı. 2.4.1 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

  • Yaşam Döngüsü 2.5.0-alpha01'nden geri alındı: SavedStateHandle için sağlanan varsayılan değerin, SavedStateHandle öğesinden özel olarak kaldırılmış olsa bile, işlem ölümü ve yeniden oluşturma sonrasında yeniden görünmesi sorunu düzeltildi. Bunun sonucunda SavedStateHandle, artık varsayılan değerleri ve geri yüklenen değerleri birleştirmez. Bunun yerine, yalnızca bilgi kaynağı olarak geri yüklenen değerleri kullanır. (I53a4b)
  • lifecycle-process artık Androidx Startup 1.1.1'e bağımlı. Bu sürüm, ProcessLifecycleInitializer kullanımının StartupException'a neden olacağı durumlardaki regresyonu düzeltiyor. (b/216490724)

Sürüm 2.4.0

27 Ekim 2021

androidx.lifecycle:lifecycle-*:2.4.0 yayınlandı. 2.4.0 sürümü bu kayıtları içerir.

2.3.0'dan sonraki önemli değişiklikler

  • @OnLifecycleEvent desteği sonlandırıldı. Bunun yerine LifecycleEventObserver veya DefaultLifecycleObserver kullanılmalıdır.
  • androidx.lifecycle:lifecycle-viewmodel-compose kitaplığı eklendi. viewModel() composable ve LocalViewModelStoreOwner.
    • Kaynağı kıran değişiklik: ViewModelProvider, Kotlin'de yeniden yazıldı. ViewModelProvider.Factory.create yöntemi artık nullable genel özelliğine izin vermiyor.
  • androidx.lifecycle:lifecycle-runtime-ktx ürününe yeni coroutines API eklendi:
  • Lifecycle.repeatOnLifecycle: Yaşam Döngüsü en azından belirli bir durumdayken eş yordam içinde bir kod bloğu yürüten API. Yaşam döngüsü hedef duruma girip çıktıkça blok iptal edilir ve yeniden başlatılır.
  • Flow.flowWithLifecycle: Yaşam döngüsü en azından belirli bir durumda olduğunda yukarı akış akışından değer çıkaran API.
  • DefaultLifecycleObserver, lifecycle.lifecycle-common-java8 kuruluş biriminden lifecycle.lifecycle-common kuruluş birimine taşındı. lifecycle.lifecycle-common-java8, lifecycle.lifecycle-common'a ek olarak artık herhangi bir ek işlev sunmadığından buna olan bağımlılık değiştirilebilir. lifecycle.lifecycle-common
  • lifecycle-viewmodel-ktx API'sindeki eş yordam harici API, lifecycle-viewmodel modülüne taşındı.
  • lifecycle-process artık ProcessLifecycleOwner uygulamasını başlatmak için androidx.startup kullanıyor.

    Daha önce bu işlem androidx.lifecycle.ProcessLifecycleOwnerInitializer tarafından gerçekleştiriliyordu.

    Geçmişte işlem yaşam döngüsünü başlatmak için kullanılan ContentProvider öğesini 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 sürümünde herhangi bir değişiklik yapılmadan yayınlanmıştır. 2.4.0-rc01 sürümü bu kayıtları içerir.

Sürüm 2.4.0-beta01

15 Eylül 2021

androidx.lifecycle:lifecycle-*:2.4.0-beta01 yayınlandı. 2.4.0-beta01 sürümü bu kayıtları 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 konumundan androidx.lifecycle.lifecycle-common konumuna taşındı. androidx.lifecycle.lifecycle-common-java8, androidx.lifecycle.lifecycle-common'a ek olarak artık herhangi bir ek işlev sunmadığından buna olan bağımlılık değiştirilebilir. androidx.lifecycle.lifecycle-common (I021aa)
  • lifecycle-viewmodel-ktx API'sindeki eş yordam harici API, 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ınlandı. 2.4.0-alpha03 sürümü bu kayıtları içerir.

API Değişiklikleri

  • Kaynağı bozan değişiklik: ViewModelProvider, Kotlin'de yeniden yazıldı. ViewModelProvider.Factory.create yöntemi, artık nullable genel özelliğine izin vermiyor. (I9b9f6)

Davranış Değişiklikleri

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

Harici Katkı

  • repeatOnLifecycle dokümanlarındaki kod snippet'lerini düzelttiğiniz için chao2zhang'a teşekkür ederiz. #205

Sürüm 2.4.0-alpha02

16 Haziran 2021

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

Yeni Özellikler

  • lifecycle-runtime-ktx hizmetine, repeateOnLifecycle öğesinin onStart() veya onResume() dahilinde yanlış kullanıldığını algılayan yeni bir RepeatOnLifecycleWrongUsage hata analizi denetimi eklendi. (706078, b/187887400)

API Değişiklikleri

  • Yapılandırılmış eşzamanlılığa saygı gösteren ve akıl yürütmeyi teşvik eden Lifecycle.repeatOnLifecycle yerine LifecycleOwner.addRepeatingJob API kaldırıldı. (I4a3a8)
  • Diğer androidx.startup.Initializer'lerin bunları bağımlılık olarak kullanabilmesi için ProcessLifecycleInitializer öğesini herkese açık hale getirin. (I94c31)

Hata Düzeltmeleri

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

Harici Katkı

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

Sürüm 2.4.0-alpha01

24 Mart 2021

androidx.lifecycle:lifecycle-*:2.4.0-alpha01 yayınlandı. 2.4.0-alpha01 sürümü bu kayıtları içerir.

Davranış Değişiklikleri

  • lifecycle-process artık ProcessLifecycleOwner uygulamasını başlatmak için androidx.startup kullanıyor.

    Daha önce bu işlem androidx.lifecycle.ProcessLifecycleOwnerInitializer tarafından gerçekleştiriliyordu.

    Geçmişte işlem yaşam döngüsünü başlatmak için kullanılan ContentProvider öğesini 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

  • Lifecycle.repeatOnLifecycle API kullanılarak yaşam döngüsü en azından belirli bir durumda olduğunda yukarı akış akışından değer yayınlayan bir Flow.flowWithLifecycle API'si eklendi. Bu, yeni LifecycleOwner.addRepeatinJob API'sine bir alternatiftir. (I0f4cd)

Hata Düzeltmeleri

  • Yaşam Döngüsü 2.3.1'den itibaren: NonNullableMutableLiveData lint kuralı artık farklı boş değerli alanlara sahip alan değişkenlerini düzgün bir şekilde ayırt edebilir. (b/169249668)

Yaşam Döngüsü Görünüm Modeli Oluşturma 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ınlandı. 1.0.0-alpha07 sürümü bu kayıtları içerir.

Kesin API Değişiklikleri

  • viewModel() artık isteğe bağlı bir ViewModelStoreOwner sunuyor. Bu sayede LocalViewModelStoreOwner dışındaki sahiplerle çalışmak daha kolay. Örneğin, artık belirli bir gezinme grafiğiyle ilişkilendirilmiş 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ınlandı. 1.0.0-alpha06 sürümü bu kayıtları içerir.

Oluştur 1.0.0-beta08 sürümüyle uyumlu olacak şekilde güncellendi.

Sürüm 1.0.0-alpha05

18 Mayıs 2021

androidx.lifecycle:lifecycle-viewmodel-compose:1.0.0-alpha05 yayınlandı. 1.0.0-alpha05 sürümü bu kayıtları içerir.

Yeni Özellikler

  • Oluştur 1.0.0-beta07 sürümüyle uyumlu olacak şekilde güncellendi.

Hata Düzeltmeleri

  • ui-test-manifest veui-tooling-data içindeki AndroidManifest dosyaları artık Android 12 (I6f9de, b/184718994) ile uyumlu.

Sürüm 1.0.0-alpha04

7 Nisan 2021

androidx.lifecycle:lifecycle-viewmodel-compose:1.0.0-alpha04 yayınlandı. Sürüm 1.0.0-alpha04 bu kayıtları içerir.

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

  • Bu sürüm, androidx.hilt:hilt-navigation-compose ve androidx.navigation:navigation-compose özelliklerinin androidx.compose.compiler:compiler:1.0.0-beta04 ve androidx.compose.runtime:runtime:1.0.0-beta04 üzerinde bağımlılıkları senkronize etmesine olanak tanır. 1.0.0 için derleyici ile ç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ınlandı. 1.0.0-alpha03 sürümü bu kayıtları içerir.

API Değişiklikleri

  • LocalViewModelStoreOwner.current, mevcut bileşimde bir ViewModelStoreOwner kullanılıp kullanılamadığını daha iyi belirlemek için artık null özellikli bir ViewModelStoreOwner döndürüyor. viewModel() ve NavHost gibi bir ViewModelStoreOwner gerektiren API'ler, ViewModelStoreOwner ayarlanmamışsa yine de istisna oluşturur. (Idf39a)

Lifecycle-Viewmodel-Compose 1.0.0-alpha02

24 Şubat 2021

androidx.lifecycle:lifecycle-viewmodel-compose:1.0.0-alpha02 yayınlandı. Sürüm 1.0.0-alpha02 bu kayıtları içerir.

API Değişiklikleri

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

Lifecycle-Viewmodel-Compose 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 kayıtları içerir.

Yeni Özellikler

  • viewModel() composable ve LocalViewModelStoreOwner, androidx.lifecycle.viewmodel.compose paketindeki androidx.compose.ui.viewinterop öğesinden bu yapıya taşındı. (I7a374)

Sürüm 2.3.1

Yaşam Döngüsü Sürümü 2.3.1

24 Mart 2021

androidx.lifecycle:lifecycle-*:2.3.1 yayınlandı. 2.3.1 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

  • NonNullableMutableLiveData lint kuralı artık farklı boş değerli alanlara sahip alan değişkenlerini düzgün bir ş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 kayıtları içerir.

2.2.0'dan bu yana yapılan önemli değişiklikler

  • Ayrıştırılamayan sınıflar için SavedStateHandle desteği: SavedStateHandle artık belirli bir anahtar için setSavedStateProvider() yöntemini çağırmanıza olanak tanıyarak geç serileştirmeyi destekliyor. Bu özellik, SavedStateHandle öğesinden durumu kaydetmesi istendiğinde saveState() çağrısını alacak bir SavedStateProvider sağlıyor. Ayrıştırılamayan sınıfları kaydetme konusuna bakın.
  • Yaşam Döngüsü Davranışı Yaptırımı:
    • LifecycleRegistry, DESTROYED komutunu terminal durumu olarak zorunlu kılar.
    • LifecycleRegistry artık yöntemlerinin ana iş parçacığında çağrıldığını doğrular. Etkinliklerin yaşam döngüleri, parçalar vb. için daima bir gereklilik vardı. Ana olmayan iş parçacıklarından gözlemcilerin eklenmesi, çalışma zamanında kilitlenmelerin tespit edilmesini zorlaştırıyordu. Kendi bileşenlerinize ait LifecycleRegistry nesneleri için LifecycleRegistry.createUnsafe(...) kullanarak denetimlerin kapsamı dışında kalmayı seçebilirsiniz, ancak daha sonra bu LifecycleRegistry öğesine farklı iş parçacıklarından erişildiğinde düzgün bir senkronizasyonun devam ettiğinden emin olmanız gerekir.
  • Yaşam Döngüsü Durumu ve Etkinlik Yardımcıları: State ve geçiş yönü verildiğinde Event öğesini oluşturmak için Lifecycle.Event öğesine 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çiş yapacağı State sağlayan getTargetState() yöntemi eklendi.
  • withStateAtLeast: Yaşam döngüsü durumunu bekleyen ve durum değişikliği anında askıya alma olmayan 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 vermediğinden ve özel bir görev dağıtıcı kullanmadığından mevcut when* yöntemlerinden farklıdır. (aosp/1326081)
  • ViewTree API'leri: View örneğiyle, yeni ViewTreeLifecycleOwner.get(View) ve ViewTreeViewModelStoreOwner.get(View) API'si sırasıyla kapsayıcı LifecycleOwner ve ViewModelStoreOwner öğelerini almanıza olanak tanır. Bu bilgileri doğru şekilde doldurmak için Etkinlik 1.2.0, Fragment 1.3.0 ve AppCompat 1.3.0-alpha01 ya da sonraki bir sürüme geçmeniz gerekir. findViewTreeLifecycleOwner ve findViewTreeViewModelStoreOwner Kotlin uzantıları sırasıyla lifecycle-runtime-ktx ve lifecycle-viewmodel-ktx dillerinde kullanılabilir.
  • LiveData.observe() Kotlin uzantısının kullanımdan kaldırılması: Kotlin 1.4 kullanılırken gerekli olmadığı için lambda söz dizimini kullanmak için gereken LiveData.observe() Kotlin uzantısı kullanımdan kaldırıldı.

Sürüm 2.3.0-rc01

16 Aralık 2020

androidx.lifecycle:lifecycle-*:2.3.0-rc01 yayınlandı. 2.3.0-rc01 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

  • SavedStateHandle için keys() yöntemi artık durum kaydedilmeden önce ve kaydedildikten sonra tutarlıdır. Artık set() ve getLiveData() ile kullanılan anahtarların yanı sıra daha önce setSavedStateProvider() ile kullanılan anahtarları da içermektedir. (aosp/1517919, b/174713653)

Harici Katkı

Sürüm 2.3.0-beta01

1 Ekim 2020

androidx.lifecycle:lifecycle-*:2.3.0-beta01 yayınlandı. 2.3.0-beta01 sürümü bu kayıtları içerir.

API Değişiklikleri

  • Lambda söz diziminin kullanılması için gereken LiveData.observe() Kotlin uzantısı, Kotlin 1.4 kullanılırken gerekli olmadığı için kullanımdan kaldırıldı. (I40d3f)

Hata Düzeltmeleri

Belgelerdeki Değişiklikler

  • liveData oluşturucu ve asLiveData() dokümanları, 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ınlandı. 2.3.0-alpha07 sürümü bu kayıtları 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ınlandı. 2.3.0-alpha06 sürümü bu kayıtları içerir.

Yeni Özellikler

  • State ve geçiş yönü verildiğinde Event oluşturulması için Lifecycle.Event öğesine 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çiş yapacağı State sağlayan getTargetState() yöntemi eklendi. (I00887)
  • Yaşam döngüsü durumunu bekleyen ve durum değişikliği noktasında askıya alma olmayan 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 vermediğinden ve özel bir görev dağıtıcı kullanmadığından mevcut when* yöntemlerinden farklıdır. (aosp/1326081)

Davranış Değişiklikleri

  • LifecycleRegistry, DESTROYED komutunu terminal durumu olarak zorunlu kılar. (I00887)
  • LifecycleRegistry artık yöntemlerinin ana iş parçacığında çağrıldığını doğrular. Etkinliklerin yaşam döngüleri, parçalar vb. için daima bir gereklilik vardı. Ana olmayan iş parçacıklarından gözlemcilerin eklenmesi, çalışma zamanında kilitlenmelerin tespit edilmesini zorlaştırıyordu. Kendi bileşenlerinize ait LifecycleRegistry nesneleri için LifecycleRegistry.createUnsafe(...) kullanarak denetimlerin kapsamı dışında kalmayı seçebilirsiniz, ancak daha sonra bu LifecycleRegistry öğesine farklı iş parçacıklarından (Ie7280, b/137392809) erişildiğinde düzgün bir senkronizasyonun çalıştığından emin olmanız gerekir.

Hata Düzeltmeleri

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

Sürüm 2.3.0-alpha05

24 Haziran 2020

androidx.lifecycle:lifecycle-*:2.3.0-alpha05 yayınlandı. 2.3.0-alpha05 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

  • LiveData artık onActive() veya onInactive() için yinelenen çağrıları önleyerek yeniden giriş yapma işlemlerini daha iyi işliyor. (b/157840298)
  • Android Studio 4.1 Canary 6 veya sonraki sürümleri kullanılırken Lint kontrollerinin çalışmaması sorunu giderildi. (aosp/1331903)

Sürüm 2.3.0-alpha04

10 Haziran 2020

androidx.lifecycle:lifecycle-*:2.3.0-alpha04 yayınlandı. 2.3.0-alpha04 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

  • NonNullableMutableLiveData Lint kontrolündeki bir kilitlenme düzeltildi. (b/157294666)
  • NonNullableMutableLiveData Hata analizi denetimi artık MutableLiveData üzerinde null olmayan bir parametreyle null değerinin ayarlandığı önemli ölçüde daha fazla durumu kapsıyor. (b/156002218)

Sürüm 2.3.0-alpha03

20 Mayıs 2020

androidx.lifecycle:lifecycle-*:2.3.0-alpha03 serbest bırakıldı. 2.3.0-alpha03 sürümü bu kayıtları içerir.

Yeni Özellikler

  • SavedStateHandle artık belirli bir anahtar için setSavedStateProvider() yöntemini çağırmanıza olanak tanıyarak geç serileştirmeyi destekliyor. Bu özellik, SavedStateHandle öğesinden durumu kaydetmesi istendiğinde saveState() için geri çağırmayı alacak bir SavedStateProvider sağlıyor. (b/155106862)
  • Yeni bir ViewTreeViewModelStoreOwner.get(View) API, View örneği için içeren ViewModelStoreOwner öğesini almanıza olanak tanır. Bu alanları doğru şekilde doldurmak için Etkinlik 1.2.0-alpha05, Fragment 1.3.0-alpha05 ve AppCompat 1.3.0-alpha01 sürümlerine geçmeniz gerekir. lifecycle-viewmodel-ktx öğesine 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ınlandı. 2.3.0-alpha02 sürümü bu kayıtları içerir.

API Değişiklikleri

  • SavedStateViewModelFactory, halihazırda kullanılabilir olmadığı ve AndroidViewModel desteğinin gerekli olmadığı durumları daha iyi destekleyebilmek için oluşturucuya boş bir Application iletmenize olanak tanıyor. (aosp/1285740)

Hata Düzeltmeleri

  • API 28 ve daha eski cihazlarda sınıf doğrulaması 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 kayıtları içerir.

Yeni Özellikler

  • Yeni bir ViewTreeLifecycleOwner.get(View) API, View örneği için içeren LifecycleOwner öğesini almanıza olanak tanır. Bu alanı doğru bir şekilde doldurmak için 1.2.0-alpha01 Etkinliği ve Parça 1.3.0-alpha01 sürümüne geçmeniz gerekir. lifecycle-runtime-ktx için findViewTreeLifecycleOwner Kotlin uzantısı mevcut. (aosp/1182361, aosp/1182956)
  • Kotlin'de null olarak tanımlanmış bir MutableLiveData için null değeri ayarlarken sizi uyaran yeni bir Lint denetimi eklendi. Bu özellik livedata-core-ktx veya livedata-ktx yapıları kullanılırken kullanılabilir. (aosp/1154723, aosp/1159092)
  • LifecycleOwner uygulayan bir TestLifecycleOwner ve iş parçacığı güvenli değişebilir Lifecycle sağlayan yeni bir lifecycle-runtime-testing yapısı kullanıma sunuldu. (aosp/1242438)

Hata düzeltmeleri

  • lifecycle-runtime yapısı artık benzersiz bir paket adına sahip. (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ınlandı. Sürüm 2.2.0 bu kayıtları 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 özelliğinin davranışı, 1.0.0 özelliğinin davranışıyla aynıdır.

Sürüm 2.2.0

22 Ocak 2020

androidx.lifecycle:lifecycle-*:2.2.0 yayınlandı. Sürüm 2.2.0 bu kayıtları içerir.

2.1.0'dan sonraki önemli değişiklikler

  • Yaşam Döngüsü Ortak Entegrasyon: Yeni lifecycle-runtime-ktx yapısı, Yaşam Döngüsü ve Kotlin eş yordamları arasında entegrasyon sağlar. lifecycle-livedata-ktx, eş yordamlardan yararlanacak şekilde de genişletildi. Daha ayrıntılı bilgi için Kotlin eş yordamlarını Mimari Bileşenlerle kullanma bölümüne bakın.
  • ViewModelProviders.of() desteği sonlandırılıyor: ViewModelProviders.of() kullanımdan kaldırıldı. Parça 1.2.0 kullanırken aynı işlevi elde etmek için yeni ViewModelProvider(ViewModelStoreOwner) oluşturucuya bir Fragment veya FragmentActivity geçirebilirsiniz.
  • lifecycle-extensions Yapının Kullanımdan Kaldırılması: ViewModelProviders.of() ürününün yukarıdaki şekilde kullanımdan kaldırılmasıyla birlikte bu sürüm, lifecycle-extensions içindeki son API'nin kullanımdan kaldırıldığını belirtir ve bu yapı artık tamamen kullanımdan kaldırılmış kabul edilir. lifecycle-extensions yerine daha sonra lifecycle-extensions için 2.3.0 sürümü sunulmayacağı için ihtiyacınız olan belirli yaşam döngüsü yapılarına (örneğin, LifecycleService kullanıyorsanız lifecycle-service ve ProcessLifecycleOwner kullanıyorsanız lifecycle-process) odaklanmanızı önemle tavsiye ederiz.
  • Gradle Artımlı Ek Açıklama İşleyici: Yaşam döngüsünün ek açıklama işlemcisi varsayılan olarak artımlıdır. Uygulamanız Java 8 programlama dilinde yazılmışsa bunun yerine DefautLifecycleObserver dilini, Java 7 programlama dilinde yazılmışsa LifecycleEventObserver dilini kullanabilirsiniz.

Sürüm 2.2.0-rc03

4 Aralık 2019

androidx.lifecycle:lifecycle-*:2.2.0-rc03 yayınlandı. 2.2.0-rc03 sürümü bu kayıtları içerir.

Hata düzeltmeleri

  • Sahte bir ViewModel, ViewModelStore içinde depolandığında ve daha sonra varsayılan fabrikada sorgulandığında ortaya çıkan hata düzeltildi.
  • İlgili yaşam döngüsü etkinliği sırasında launchWhenCreated içinde Dispatchers.Main.immediate kullanımı ve benzer yöntemlerin eşzamanlı olarak çağrılması için düzeltme uygulandı. (aosp/1156203)

Harici katkılar

  • Düzeltmede katkıda bulunan Anders Järleberg'e teşekkür ederiz. (aosp/1156203)
  • Satır içi yürütme uygulamasını değerlendirdikleri için Jetbrains'den Vsevolod Tolstopyatov'a teşekkür ederiz.

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

  • Yaşam Döngüsü Uzantıları artık 1.2.0-rc03 Parçasına bağlıdır.

Sürüm 2.2.0-rc02

7 Kasım 2019

androidx.lifecycle:lifecycle-*:2.2.0-rc02 yayınlandı. 2.2.0-rc02 sürümü bu kayıtları 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ınlandı. 2.2.0-rc01 sürümü bu kayıtları içerir.

Hata düzeltmeleri

  • Dispatchers.Main.immediate yerine Dispatchers.Main kullanılması nedeniyle launchWhenCreated ve ilgili yöntemlerin, ilişkili yaşam döngüsü yönteminden bir kare daha geç çalıştırmasına neden olan sorun düzeltildi. (aosp/1145596)

Harici katkılar

  • Düzeltmede katkıda bulunduğu için Nicklas Ansman'a teşekkür ederiz! (aosp/1145596)

Sürüm 2.2.0-beta01

9 Ekim 2019

androidx.lifecycle:lifecycle-*:2.2.0-beta01 yayınlandı. 2.2.0-beta01 sürümü bu kayıtları içerir.

Hata düzeltmeleri

Sürüm 2.2.0-alpha05

18 Eylül 2019

androidx.lifecycle:lifecycle-*:2.2.0-alpha05 yayınlandı. Sürüm 2.2.0-alpha05 bu kayıtları içerir.

Hata düzeltmeleri

  • Ortak canlı veri oluşturucudaki bir yarış durumu düzeltildi. b/140249349

Sürüm 2.2.0-alpha04

5 Eylül 2019

androidx.lifecycle:lifecycle-*:2.2.0-alpha04 yayınlandı. Bu sürümdeki kaydetmeleri burada bulabilirsiniz.

Yeni özellikler

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

Harici katkılar

  • Dispatchers.Main.immediate adlı çocuğa katkılarından dolayı Nicklas Ansman'a teşekkür ediyoruz! (aosp/1106073)

Sürüm 2.2.0-alpha03

7 Ağustos 2019

androidx.lifecycle:lifecycle-*:2.2.0-alpha03 yayınlandı. Bu sürümdeki kaydetmeleri 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) oluşturucuya bir Fragment veya FragmentActivity geçirebilirsiniz. (aosp/1009889)

Sürüm 2.2.0-alpha02

2 Temmuz 2019

androidx.lifecycle:*:2.2.0-alpha02 yayınlandı. Bu sürümdeki kaydetmeleri burada bulabilirsiniz.

API değişiklikleri

  • LiveDataScope.initialValue, liveData bloğunun mevcut yayınlanan değerini izleyecek LiveDataScope.latestValue ile değiştirildi.
  • liveData oluşturucuya, Duration türünde timeout parametresi 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ümdeki kaydetmeleri burada bulabilirsiniz.

Yeni özellikler

  • Bu sürümde, Yaşam Döngüsü ve LiveData için Kotlin eş yordamlarını destekleyen yeni özellikler eklendi. Bunlarla ilgili ayrıntılı belgeleri 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ınlandı. Sürüm 1.0.0 bu kayıtları 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 kaydedilen durumuna erişmesine ve katkıda bulunmasına olanak sağlar. Bu nesne ViewModel sınıfının kurucusunda alınabilir. Fragments tarafından varsayılan olarak sağlanan fabrikalar ve AppCompatActivity, SavedStateHandle sınıfını otomatik olarak ekler.
  • AbstractSavedStateViewModelFactory eklendi. ViewModel cihazınız için özel fabrikalar oluşturmanıza ve SavedStateHandle cihazına erişim sağlamanıza 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ınlandı. 1.0.0-rc03 sürümü bu kayıtları içerir.

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

  • Yaşam döngüsü ViewModel SavedState artık 2.2.0-rc03 Yaşam Döngüsüne 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 kayıtları içerir.

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

  • Artık 2.2.0-rc02 yaşam döngüsüne bağlıdır.

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 tarihinde hiçbir değişiklik yapılmadan serbest bırakıldı. 1.0.0-rc01 sürümü bu kayıtları 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 kayıtları içerir.

Hata düzeltmeleri

  • Activity.onActivityResult() ürününde SavedState ViewModel'e ilk kez erişmenin IllegalStateException ile sonuçlanmasına neden olan sorun düzeltildi. (b/139093676)
  • AbstractSavedStateViewModelFactory kullanılırken IllegalStateException 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ınlandı. 1.0.0-alpha05 sürümü bu kayıtları içerir.

API değişiklikleri

  • SavedStateViewModelFactory artık AbstractSavedStateViewModelFactory kapsamını genişletmez ve SavedStateHandle yalnızca bu öğeye sahip olmasını isteyen ViewModel'ler için oluşturulur (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ınlandı. Bu sürümdeki kaydetmeleri burada bulabilirsiniz.

Zarar Veren 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ümdeki kaydetmeleri burada bulabilirsiniz.

Yeni özellikler

  • Varsayılan değeri kabul eden SavedStateHandle.getLiveData() fazla yükleme 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üme ait tam kaydetme günlüğünü burada bulabilirsiniz.

Yeni özellikler

  • ViewModels artık kayıtlı duruma katkıda bulunabilir. Bunu yapmak için, yeni kullanıma sunulan viewmodel'in SavedStateVMFactory fabrikasını kullanırsınız ve ViewModel'iniz, SavedStateHandleobject parametre olarak alan bir kurucuya sahip olmalıdır.

Sürüm 2.1.0

2.0.0'dan sonraki önemli değişiklikler

  • Yaşam döngüsü olayları 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öntemler ve Transformations.* yöntem 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ı özelliği eklenerek ViewModels'te eş yordam desteği eklendi.

Sürüm 2.1.0

5 Eylül 2019

androidx.lifecycle:lifecycle-*:2.1.0 yayınlandı. Bu sürümdeki kaydetmeleri burada bulabilirsiniz.

Sürüm 2.1.0-rc01

2 Temmuz 2019

androidx.lifecycle:*:2.1.0-rc01, androidx.lifecycle:*:2.1.0-beta01 tarihinde hiçbir değişiklik yapılmadan serbest bırakıldı. Bu sürümdeki kaydetmeleri burada bulabilirsiniz.

Sürüm 2.1.0-beta01

7 Mayıs 2019

androidx.lifecycle:*:2.1.0-beta01 yayınlandı. Bu sürümdeki kaydetmeleri burada bulabilirsiniz.

Yeni özellikler

  • Yaşam döngüleri beta sürüme geçirildi: Önceki alfa sürümlerinde kullanıma sunulan liveDatadönüşümler ve gözlemler için uzantı işlevleri, ViewModel mülk yetkilendirmesiyle başlatma ve diğerleri stabilize edildi ve değişmeyecek.

Sürüm 2.1.0-alpha04

3 Nisan 2019

androidx.lifecycle:*:2.1.0-alpha04 yayınlandı. Bu sürümdeki kaydetmeleri burada bulabilirsiniz.

API değişiklikleri

  • Çarpıcı değişiklik: by viewModels() ve by activityViewModels() arka planındaki temel API, yalnızca bir ViewModelStoreOwner yerine doğrudan bir 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ınlandı. Bu sürümdeki kaydetmelerin tam listesini burada bulabilirsiniz.

API değişiklikleri

  • ViewModelProvider.KeyedFactory kaldırıldı. ViewModelProvider.Factory'e ek olarak ikinci arayüz, Kotlin by viewmodels {}'deki mülk yetkilendirme gibi yeni özellikler açısından pek etkili olmadı. (aosp/914133)

Sürüm 2.1.0-alpha02

30 Ocak 2019

androidx.lifecycle 2.1.0-alpha02 yayınlandı.

API değişiklikleri

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

Hata düzeltmeleri

  • Şunu içeren ViewModelStore temizlendiğinde örnek 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ü olayları akışının gerekli olduğu durumlar için LifecycleEventObserver eklendi. Gizli bir GenericLifecycleObserver sınıfı yerine herkese açık bir API.
  • LiveData.observe yöntemler ve Transformations.* yöntem 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'te eş yordam desteği: ViewModel.viewModelScope uzantı özelliği eklendi.
  • create yönteminde key ve Class alan ViewModel'leri 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'deki 2.0.0-rc01 adresinde bulunan bir hata düzeltmesiyle yayınlandı.

Hata Düzeltmeleri

  • b/112230489 kurucularını yanlış bir şekilde kaldıran bir ViewModel ProGuard kuralı düzeltildi.

Sürüm 2.0.0-beta01

2 Temmuz 2018

Hata Düzeltmeleri

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

AndroidX Öncesi Sürümleri

Ardından gelen 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"
}

Sürüm 1.1.1

21 Mart 2018

Tek bir küçük değişiklik: android.arch.core.util.Function, arch:runtime değerinden arch:common değerine taşındı. Bu, çalışma zamanı bağımlılığı olmadan kullanılmasına olanak tanır (ör. aşağıdaki paging:common'de).

lifecycle:common, lifecycle:runtime bağımlılığıdır. Bu nedenle, bu değişiklik lifecycle:runtime öğesini doğrudan etkilemez. Sayfalamanın yaptığı gibi yalnızca lifecycle:common'e doğrudan bağlı olan modülleri etkiler.

Sürüm 1.1.0

22 Ocak 2018

Paketleme Değişiklikleri

Yeni ve çok daha küçük bağımlılıklar artık kullanılabilir:

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

API Değişiklikleri

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