Yaşam döngüsü
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 |
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.
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ı veSupervisorJob()
'yi eklemenize veyarunTest
içinde bulunanbackgroundScope
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 yerineViewModelProvider.create()
yöntemleriyle yapılıyor.ViewModelProvider.NewInstanceFactory
veViewModelProvider.AndroidViewModelFactory
yalnızca Android'de kullanılabilir.- Özel Fabrikalar'ın
ViewModelProvider.Factory
tarihinden başlayarakCreationExtras
alancreate
yöntemini veyaviewModelFactory
Kotlin DSL'yi kullanması önerilir.
- Özel Fabrikalar'ın
- 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 birinitializer
zaten eklenmişseInitializerViewModelFactory
(viewModelFactory
oluşturucu işlevi dahil) artık birIllegalArgumentException
döndürür. (Ic3a36)
Hata Düzeltmeleri
ViewModel.getCloseable
artık yinelenen anahtarları işliyor:key
ile ilişkilendirilmiş birAutoCloseable
kaynağı zaten varsa eski kaynak değiştirilir ve hemen kapatılır. (Ibeb67)- Bir
ViewModel
öğesininviewModelScope
öğ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
, belirtilenLifecycle.State
değerinin altına düştükten sonra bile tıklama etkinliği veya başka etkinliklerde bulunmanıza olanak tanıyandropUnlessResumed
vedropUnlessStarted
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ırlifecycle-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
veLifecycleRegistry
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 uygulanarakLifecycleStartEffect
veLifecycleResumeEffect
çağrılarının anahtar olmadan yapılması artık bir hatadır. (Ib0e0c, b/323518079) ViewModel
artıkCloseable
yerineAutoCloseable
kullanıyor. Bu, geriye dönük uyumlu bir değişikliktir. (I27f8e, b/214568825)LiveData.toPublisher(lifecycleOwner)
için sunulanLiveDataReactiveStreams.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ıkgetCloseable()
aracılığıyla alınmaya olanak tanıyankey
ileCloseable
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ümLifecycleObserver
geri çağırma işlemlerinin geri dönmeden önce tamamlanmasını sağlayansetCurrentState()
askıya alma işlevini içeriyor. ÖzelliklecurrentState
özelliğini doğrudan ayarlamanın aksine bu,runBlocking
kullanmaz. BöylecerunTest
tarafından sağlanan gibi bir eş değerde kullanımı güvenli hale gelir.map
veswitchMap
uzantıları artıkdistinctUntilChanged
özelliğinin davranışını yansıtmaktadır.LiveData
öğesinin birvalue
grubu varsa döndürülenLiveData
öğesininvalue
öğesini doldurmak içinmap
/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ızcaLiveData
öğ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 özelParcelable
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 veget
,getLiveData
ilegetStateFlow
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ıkLifecycle.asFlow()
uzantısı yöntemiyleLifecycle.Event
Flow
gözlemleyebilirsiniz.- Jetpack Compose kullanıcıları artık
Lifecycle.Event
ile ilgili Compose yan efektlerini çalıştırmak içinLifecycleEventEffect
kullanabilir.
@Composable
fun HomeScreen(viewModel: HomeViewModel = viewModel()) {
LifecycleEventEffect(Lifecycle.Event.ON_RESUME) {
viewModel.refreshData()
}
// …
}
- Jetpack Compose kullanıcıları
LifecycleStartEffect
veLifecycleResumeEffect
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ıkLifecycle.currentStateFlow
özelliği aracılığıyla gözlemlenebilir. Bu özellik,StateFlow
değerini döndürür; buradavalue
, geçerliLifecycle.State
olur. - Jetpack Compose kullanıcıları
Lifecycle.State
öğelerini doğrudan ComposeState
olarak göstermek içinLifecycle.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 özelParcelable
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 veget
,getLiveData
ilegetStateFlow
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ştirilirseLifecycleStartEffect
veLifecycleResumeEffect
, 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çindeykencurrentState
alanını kullanarakTestLifecycleOwner
içinLifecycle.State
ayarlanmaması için yeni bir Lint denetimi içeriyor. Lint kontrolü şimdiLifecycle.State
öğesinin engellemeden ayarlanmasına olanak tanıyansetCurrentState
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ürmeninLiveData
örneğinin kaynak olarak eklenmesini engellemesine neden olanLiveData.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ılaraTestLifecycleOwner
uygulamasınırunTest
tarafından sağlanan gibi bir eş yordamdan kullanma seçeneği sunmak içinsetCurrentState()
askıya alma işlevini içeriyor. (I329de, b/259344129)
API Değişiklikleri
lifecycle-livedata-ktx
modüllerindeki tüm dosyalar analifecycle-livedata
modülüne taşındı. (I10c6f, b/274800183)
Davranış Değişiklikleri
- Önceki
LiveData
için belirlenmiş bir değer olması halindeLiveData.map()
veLiveData.switchMap()
uzantıları, artık döndürülenLiveData
öğesininvalue
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öronCleared()
numarasına bir arama almışsaViewModel
adlı kullanıcınınaddCloseable()
özelliği artıkCloseable
öğesini hemen kapatıyor. (I4712e, b/280294730)
Hata Düzeltmeleri
- Yaşam döngüsü
2.6.2
'nde: İşlem geri alınmasından sonraSavedStateHandle
öğesinin doğru şekilde geri yüklenmemesine neden olan sorun giderildi. Durum geri yüklenirsesave()
,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ınNavHost
ö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ıkLifecycle.currentStateFlow
üzerinden Oluşturma ile gözlemlenebilir. Bu davalue
değerinin geçerliLifecycle.State
olduğu birStateFlow
döndürür. (Ib212d, b/209684871)Lifecycle.Event
öğeleri artıkLifecycle.asFlow().
ileFlow
olarak gözlemlenebilir (If2c0f, b/176311030)Lifecycle.Event.ON_RESUME
veLifecycle.Event.ON_PAUSE
etkinlik geri çağırmalarına göre ComposeSideEffect
'leri çalıştırmak içinLifecycleResumeEffect
API eklendi. (I60386, b/235529345)Lifecycle.Event.ON_START
veLifecycle.Event.ON_STOP
etkinlik geri çağırmalarına göreSideEffect
Compose'ları çalıştırmak içinLifecycleStartEffect
API eklendi. (I5a8d1, b/235529345)Lifecycle.Event
temel alınarakSideEffect
oluşturma işlemlerini çalıştırmak üzereLifecycleEventEffect
API eklendi. (Ic9794, b/235529345)Lifecycle.State
öğesini doğrudan OluşturState
olarak gösterecekLifecycle.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 varsaLiveData.distinctUntilChanged()
uzantısı, artık döndürülenLiveData
öğesininvalue
özelliğini ayarlıyor. Bu durum, gözlem davranışını değiştirmez.LiveData
kaynağına ait güncellenmiş değerler, yalnızcadistinctUntilChanged()
öğesinden döndürülenLiveData
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 kaydedilmedensave()
ç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ınNavHost
ö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
lifecycle-viewmodel-savedstate
artık SavedState1.2.1
aracına bağlı. (cd7251)- Yaşam döngüsü artık ProfileInstaller
1.3.0
özelliğine bağlıdır. (f9d30b)
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ıkLiveData
üzerinde belirli bir değerin ayarlanıp ayarlanmadığını gösteren yeni birisInitialized
özelliği içeriyor. Bu özellik, hiç değer ayarlanmadığı içinnull
değerini döndürenliveData.value
ile açık birnull
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ınStateFlow
veFlow
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 veLifecycle.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çinonChanged
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ızObserver
öğ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
veProcessLifecycleOwner
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 varsaLiveData.distinctUntilChanged()
uzantısı, artık döndürülenLiveData
öğesininvalue
özelliğini ayarlıyor. Bu durum, gözlem davranışını değiştirmez.LiveData
kaynağına ait güncellenmiş değerler, yalnızcadistinctUntilChanged()
öğesinden döndürülenLiveData
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. ÖncekigetLifecycle()
işlevini uygulamak yerine artıklifecycle
ö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. ÖncekigetViewModelStore()
işlevini uygulamak yerine artıkviewModelStore
özelliğini geçersiz kılması gerekir. (I86409, b/240298691)LifecycleOwner
ürünündelifecycleScope
alanını sağlayan Kotlin uzantısı,lifecycle-runtime-ktx
konumundanlifecycle-common
yapısına taşındı. (I41d78, b/240298691)Lifecycle
ürünündecoroutineScope
alanını sağlayan Kotlin uzantısı,lifecycle-runtime-ktx
konumundanlifecycle-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ğrudanTransformations.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ızcalifecycle-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öntemlerinandroidx.arch.core.util.Function
yöntemi kullanan sürümleri kullanımdan kaldırılır ve bunların yerini KotlinFunction1
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ıkandroidx.lifecycle.setViewTreeViewModelStoreOwner
veandroidx.lifecycle.findViewTreeViewModelStoreOwner
öğelerininView
ü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ıkdefaultViewModelProviderFactory
vedefaultViewModelCreationExtras
ö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çinvalue
adını kullanıyor. (Iffef2, I4995e, b/240298691)AndroidViewModel
,AbstractSavedStateViewModelFactory
,LifecycleService
,ServiceLifecycleDispatcher
veProcessLifecycleOwner
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ıkLiveData
üzerinde belirli bir değerin ayarlanıp ayarlanmadığını gösteren yeni birisInitialized
özelliği içeriyor. Bu özellik, hiç değer ayarlanmadığı içinnull
değerini döndürenliveData.value
ile açık birnull
değeri arasında ayrım yapmanıza olanak tanıyor. (İbd018)
API Değişiklikleri
lifecycle-runtime-compose
uygulamasınıncollectAsStateWithLifecycle()
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 veLifecycle.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ıkandroidx.lifecycle.setViewTreeLifecycleOwner
veandroidx.lifecycle.findViewTreeLifecycleOwner
öğelerininView
ü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. Öncedenlifecycle-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
veViewModelStore
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üyleget()
çağrılırkenClassCastException
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/242871265FlowLiveData.asFlow()
, iş parçacığı güvenliğini ve bağlamın korunmasını sağlamak için artık kendiChannel
uygulamasını kullanmak yerine bircallbackFlow
oluşturuyor. (I4a8b2, b/200596935)FlowLiveData
'inasLiveData
işlevi, yeniLiveData
nesnesini oluştururken artıkStateFlow
öğ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ıkcreate(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
veFlow
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 birLifecycle.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 bilgiliAndroidViewModelFactory
oluşturucusu kullanıldığında artıkcreate(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ıkLiveData
kullanmaya alternatif olarak değer değişikliklerini izlemek için KotlinStateFlow
döndüren birgetStateFlow()
API'si sunuyor.ViewModel CreationExtras: Özel bir
ViewModelProvider.Factory
yazarken, artıkApplication
veyaSavedStateHandle
öğesine erişim elde etmek içinAndroidViewModelFactory
veyaAbstractSavedStateViewModelFactory
öğesini genişletmeniz gerekmiyor. Bunun yerine şu alanlar, yenicreate
aşırı yükü aracılığıyla herViewModelProvider.Factory
alt sınıfınaCreationExtras
olarak sağlanır:create(Class<T>, CreationExtras)
. Bu ekstralar sırasıyla Etkinlik1.5.0
ve Parça1.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ıkViewModelProvider.Factory
'nizi bir veya daha fazla lambda başlatıcısı ile tanımlamanızı sağlayanviewModelFactory
Kotlin DSL sunuyor. Bu, özel fabrikanızın desteklediği her birViewModel
sınıfı için bir tane olmak üzere, birincil veri kaynağı olarakCreationExtras
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 birViewModelProvider.Factory
oluşturulmasına gerek kalmadanViewModel
örneği oluşturmak için lambda fabrikasını kullanan birviewModel()
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ıkSavedStateHandle.saveable
içinde bir `ViewModel.rememberSaveable
SavedStateHandle
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ıraViewModel
öğesine bir veya daha fazlaCloseable
nesnesi eklemenize olanak tanıyan yeni oluşturucu yükü eklendi. Bu nesne,ViewModel
temizlendiğindeonCleared()
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 birCoroutineScope
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ü korurkenViewModel
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
öğesiniINITIALIZED
konumundanDESTROYED
konumuna taşımaya çalışıldığında artıkLifecycle
öğesine eklenmiş bir gözlemci olup olmamasından bağımsız olarak her zamanIllegalStateException
hatası gönderilir.LifecycleRegistry
, artıkDESTROYED
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 birnull
kaynağı ilettiğindeNullPointerException
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 üzereSavedStateHandle.saveable
mülk yetkileri eklendi (I8bb86, b/225014345)
Hata Düzeltmeleri
- Birincil olmayan alt gezinme sekmesinde bir
NavHost
öğesini başka birNavHost
içine yerleştirmenin, birden fazla arka yığın kullanılırkenIllegalStateException
öğ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çinSavedStateHandle.saveable
öğesine deneyselMutableState
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ıkSavedStateHandleSaver
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ıkSavedStateRegistryOwner
ile başlatıldığında bileCreationExtras
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ıkLiveData
kullanımına alternatif olarak değer değişikliklerini izlemek için KotlinStateFlow
döndüren birgetStateFlow()
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 veViewModel
öğesine bir veya daha fazlaCloseable
nesnesi eklemenize olanak tanıyan yeni bir oluşturucu aşırı yüklemesi eklendi. Bu nesne,ViewModel
öğesionCleared()
içinde manuel çalışma yapılmadan silindiğinde kapatılacak. (I55ea0) lifecycle-viewmodel
artık birincil veri kaynağı olarakCreationExtras
kullanarak belirliViewModel
sınıflarını işlemek için lambda eklemenize olanak tanıyan birInitializerViewModelFactory
sunuyor. (If58fc, b/216687549)lifecycle-viewmodel-compose
, artık özel birViewModelProvider.Factory
oluşturulmasına gerek kalmadanViewModel
örneği oluşturmak için lambda fabrikasını kullanan birviewModel()
API sunuyor. (I97fbb, b/216688927)
API Değişiklikleri
- Artık
lifecycle-viewmodel-compose
aracılığıylaCreationExtras
ile birViewModel
oluşturabilirsiniz. (I08887, b/216688927)
Davranış değişiklikleri
Lifecycle.State
öğesiniINITIALIZED
konumundanDESTROYED
konumuna taşımaya çalışıldığında artıkLifecycle
öğesine eklenmiş bir gözlemci olup olmamasından bağımsız olarak her zamanIllegalStateException
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
veSavedStateViewModelFactory
, 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ünStartupException
öğesi oluşturmasını engelleyen düzeltmelerin varsayılan olarak kullanılabilir olmasını sağlamak içinlifecycle-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 veViewModel
oluşturmaya çalışıldığında iyileştirilmiş hata mesajı gösteriliyor. (I340f7, b/177667711) - Artık
AndroidViewModelFactory
kullanarak herhangi bir uygulama ayarlamadanCreationExtras
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
: BuString
,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ılanSavedStateRegistryOwner
öğesine erişim sağlar.SavedStateHandleSupport.VIEW_MODEL_STORE_OWNER_KEY
, bu ViewModel'i oluşturmak için kullanılanViewModelStoreOwner
öğesine erişim sağlar.SavedStateHandleSupport.DEFAULT_ARGS_KEY
, birSavedStateHandle
oluşturmak için kullanılması gereken bağımsız değişkenlerinBundle
öğ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 sonucundaSavedStateHandle
, 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 sonucundaSavedStateHandle
, 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ınStartupException
'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 yerineLifecycleEventObserver
veyaDefaultLifecycleObserver
kullanılmalıdır.androidx.lifecycle:lifecycle-viewmodel-compose
kitaplığı eklendi.viewModel()
composable veLocalViewModelStoreOwner
.- 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.
- Kaynağı kıran değişiklik:
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ş birimindenlifecycle.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ıkProcessLifecycleOwner
uygulamasını başlatmak içinandroidx.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
öğesinitools: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 yerineLifecycleEventObserver
veyaDefaultLifecycleObserver
kullanılmalıdır. (I5a8fa)- DefaultLifecycleObserver,
androidx.lifecycle.lifecycle-common-java8
konumundanandroidx.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ı
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
öğesininonStart()
veyaonResume()
dahilinde yanlış kullanıldığını algılayan yeni birRepeatOnLifecycleWrongUsage
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
yerineLifecycleOwner.addRepeatingJob
API kaldırıldı. (I4a3a8) - Diğer
androidx.startup.Initializer
'lerin bunları bağımlılık olarak kullanabilmesi içinProcessLifecycleInitializer
öğ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ıkProcessLifecycleOwner
uygulamasını başlatmak içinandroidx.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
öğesinitools: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 birFlow.flowWithLifecycle
API'si eklendi. Bu, yeniLifecycleOwner.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ı birViewModelStoreOwner
sunuyor. Bu sayedeLocalViewModelStoreOwner
dışındaki sahiplerle çalışmak daha kolay. Örneğin, artık belirli bir gezinme grafiğiyle ilişkilendirilmiş ViewModel almak içinviewModel(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
veandroidx.navigation:navigation-compose
özelliklerininandroidx.compose.compiler:compiler:1.0.0-beta04
veandroidx.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 birViewModelStoreOwner
kullanılıp kullanılamadığını daha iyi belirlemek için artık null özellikli birViewModelStoreOwner
döndürüyor.viewModel()
veNavHost
gibi birViewModelStoreOwner
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ıkCompositionLocalProvider
ile kullanılabilen veasProvidableCompositionLocal()
API'nin yerini alanprovides
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 veLocalViewModelStoreOwner
,androidx.lifecycle.viewmodel.compose
paketindekiandroidx.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çinsetSavedStateProvider()
yöntemini çağırmanıza olanak tanıyarak geç serileştirmeyi destekliyor. Bu özellik,SavedStateHandle
öğesinden durumu kaydetmesi istendiğindesaveState()
çağrısını alacak birSavedStateProvider
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 aitLifecycleRegistry
nesneleri içinLifecycleRegistry.createUnsafe(...)
kullanarak denetimlerin kapsamı dışında kalmayı seçebilirsiniz, ancak daha sonra buLifecycleRegistry
öğesine farklı iş parçacıklarından erişildiğinde düzgün bir senkronizasyonun devam ettiğinden emin olmanız gerekir.
- LifecycleRegistry,
- Yaşam Döngüsü Durumu ve Etkinlik Yardımcıları:
State
ve geçiş yönü verildiğindeEvent
öğesini oluşturmak içinLifecycle.Event
öğesinedownFrom(State)
,downTo(State)
,upFrom(State)
,upTo(State)
statik yardımcı yöntemleri eklendi. Yaşam döngüsünün doğrudanEvent
sonrasında geçiş yapacağıState
sağlayangetTargetState()
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 edenLifecycle.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 mevcutwhen*
yöntemlerinden farklıdır. (aosp/1326081)ViewTree
API'leri:View
örneğiyle, yeniViewTreeLifecycleOwner.get(View)
veViewTreeViewModelStoreOwner.get(View)
API'si sırasıyla kapsayıcıLifecycleOwner
veViewModelStoreOwner
öğelerini almanıza olanak tanır. Bu bilgileri doğru şekilde doldurmak için Etkinlik1.2.0
, Fragment1.3.0
ve AppCompat 1.3.0-alpha01 ya da sonraki bir sürüme geçmeniz gerekir.findViewTreeLifecycleOwner
vefindViewTreeViewModelStoreOwner
Kotlin uzantıları sırasıylalifecycle-runtime-ktx
velifecycle-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 gerekenLiveData.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çinkeys()
yöntemi artık durum kaydedilmeden önce ve kaydedildikten sonra tutarlıdır. Artıkset()
vegetLiveData()
ile kullanılan anahtarların yanı sıra daha öncesetSavedStateProvider()
ile kullanılan anahtarları da içermektedir. (aosp/1517919, b/174713653)
Harici Katkı
- Yaşam döngüsüne duyarlı eşleri askıya almak için kullanılan API'ler artık
yield()
çağrılarını daha iyi işliyor. Teşekkürler Nicklas Ansman Giertz! (aosp/1430830, b/168777346)
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
- Androidx'i Kotlin 1.4 sürümünü kullanacak şekilde yeni sürüme geçirin (Id6471, b/165307851, b/165300826)
Belgelerdeki Değişiklikler
liveData
oluşturucu veasLiveData()
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ğindeEvent
oluşturulması içinLifecycle.Event
öğesinedownFrom(State)
,downTo(State)
,upFrom(State)
,upTo(State)
statik yardımcı yöntemleri eklendi. Yaşam döngüsünün doğrudanEvent
sonrasında geçiş yapacağıState
sağlayangetTargetState()
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 mevcutwhen*
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 aitLifecycleRegistry
nesneleri içinLifecycleRegistry.createUnsafe(...)
kullanarak denetimlerin kapsamı dışında kalmayı seçebilirsiniz, ancak daha sonra buLifecycleRegistry
öğ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 özellikleNullSafeMutableLiveData
) ile birlikte sunulan Lint çekleri içinObsoleteLintCustomCheck
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ıkonActive()
veyaonInactive()
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ıkMutableLiveData
üzerinde null olmayan bir parametreylenull
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çinsetSavedStateProvider()
yöntemini çağırmanıza olanak tanıyarak geç serileştirmeyi destekliyor. Bu özellik,SavedStateHandle
öğesinden durumu kaydetmesi istendiğindesaveState()
için geri çağırmayı alacak birSavedStateProvider
sağlıyor. (b/155106862)- Yeni bir
ViewTreeViewModelStoreOwner.get(View)
API,View
örneği için içerenViewModelStoreOwner
öğesini almanıza olanak tanır. Bu alanları doğru şekilde doldurmak için Etkinlik1.2.0-alpha05
, Fragment1.3.0-alpha05
ve AppCompat1.3.0-alpha01
sürümlerine geçmeniz gerekir.lifecycle-viewmodel-ktx
öğesinefindViewModelStoreOwner()
Kotlin uzantısı eklendi. (aosp/1295522)
Hata Düzeltmeleri
- Yaşam döngüsü
2.3.0-alpha01
'nde yayınlananMutableLiveData
Lint kontrollerinin,lifecycle-livedata-core-ktx
yapısıyla birlikte yayınlanmasına neden olan sorun düzeltildi. (b/155323109)
Sürüm 2.3.0-alpha02
29 Nisan 2020
androidx.lifecycle:lifecycle-*:2.3.0-alpha02
yayınlandı. 2.3.0-alpha02 sürümü bu kayıtları içerir.
API Değişiklikleri
SavedStateViewModelFactory
, halihazırda kullanılabilir olmadığı veAndroidViewModel
desteğinin gerekli olmadığı durumları daha iyi destekleyebilmek için oluşturucuya boş birApplication
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çerenLifecycleOwner
öğesini almanıza olanak tanır. Bu alanı doğru bir şekilde doldurmak için1.2.0-alpha01
Etkinliği ve Parça1.3.0-alpha01
sürümüne geçmeniz gerekir.lifecycle-runtime-ktx
içinfindViewTreeLifecycleOwner
Kotlin uzantısı mevcut. (aosp/1182361, aosp/1182956) - Kotlin'de null olarak tanımlanmış bir
MutableLiveData
içinnull
değeri ayarlarken sizi uyaran yeni bir Lint denetimi eklendi. Bu özelliklivedata-core-ktx
veyalivedata-ktx
yapıları kullanılırken kullanılabilir. (aosp/1154723, aosp/1159092) LifecycleOwner
uygulayan birTestLifecycleOwner
ve iş parçacığı güvenli değişebilirLifecycle
sağlayan yeni birlifecycle-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ça1.2.0
kullanırken aynı işlevi elde etmek için yeniViewModelProvider(ViewModelStoreOwner)
oluşturucuya birFragment
veyaFragmentActivity
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 sonralifecycle-extensions
için2.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ızlifecycle-service
veProcessLifecycleOwner
kullanıyorsanızlifecycle-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ışsaLifecycleEventObserver
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çindeDispatchers.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
yerineDispatchers.Main
kullanılması nedeniylelaunchWhenCreated
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
- Yaşam Döngüsü 2.2.0-alpha05'te
ProcessLifecycleOwner
sırasına göre sunulan bir regresyon ve Android 10 cihazlarda etkinliğinLifecycleOwner
değerinin başlayıp devam ettirildiğine dair bir regresyon düzeltildi. (aosp/1128132) 2.2.0-alpha05
Yaşam Döngüsünde kullanıma sunulan velifecycle-process
2.0.0
veya2.1.0
sürümü kullanılırkenNullPointerException
sorununa neden olan bir regresyon düzeltildi. (b/141536990)
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 temelliveData
uygulaması artıkDispatchers.Main
yerineDispatchers.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
ViewModelStoreOwner
uygulamaları, varsayılanViewModelProvider.Factory
sağlamak için artık isteğe bağlı olarakHasDefaultViewModelProviderFactory
uygulayabilir. Bu işlem1.1.0-alpha02
Etkinliği, Parça1.2.0-alpha02
ve Gezinme2.2.0-alpha01
için yapılmıştır. (aosp/1092370, b/135716331)
API değişiklikleri
ViewModelProviders.of()
desteği sonlandırıldı. Aynı işlevi elde etmek için yeniViewModelProvider(ViewModelStoreOwner)
oluşturucuya birFragment
veyaFragmentActivity
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 izleyecekLiveDataScope.latestValue
ile değiştirildi.liveData
oluşturucuya,Duration
türündetimeout
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 nesneViewModel
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 veSavedStateHandle
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şmeninIllegalStateException
ile sonuçlanmasına neden olan sorun düzeltildi. (b/139093676)AbstractSavedStateViewModelFactory
kullanılırkenIllegalStateException
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ıkAbstractSavedStateViewModelFactory
kapsamını genişletmez veSavedStateHandle
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
lifecycle-viewmodel-savedstate
artıkfragment
ürününe bağımlı değildir ve ilgiliSavedStateViewModelFactory(Fragment)
veSavedStateViewModelFactory(FragmentActivity)
kurucuları kaldırıldı. Bunun yerineSavedStateViewModelFactory
artık1.1.0-alpha02
Etkinliği, Parça1.2.0-alpha02
ve Gezinme2.2.0-alpha01
için varsayılan fabrika ayarıdır. (b/135716331)
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'inSavedStateVMFactory
fabrikasını kullanırsınız ve ViewModel'iniz,SavedStateHandle
object 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 birGenericLifecycleObserver
sınıfı yerine herkese açık bir API'dir. LiveData.observe
yöntemler veTransformations.*
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şturanTransformations.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
liveData
dö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()
veby activityViewModels()
arka planındaki temel API, yalnızca birViewModelStoreOwner
yerine doğrudan birViewModelStore
'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, Kotlinby 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ılansetState()
yönteminin yerini alan birsetCurrentState()
yöntemi içeriyor. (aosp/880715)
Hata düzeltmeleri
- Şunu içeren
ViewModelStore
temizlendiğinde örnekViewModel
ö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 birGenericLifecycleObserver
sınıfı yerine herkese açık bir API. LiveData.observe
yöntemler veTransformations.*
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 birLiveData
nesnesi oluşturur.- ViewModels'te eş yordam desteği:
ViewModel.viewModelScope
uzantı özelliği eklendi. create
yöntemindekey
veClass
alan ViewModel'leri için bir fabrika olanViewModelProvider.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
veLifecycleFragment
artık kaldırıldı. LütfenFragmentActivity
,AppCompatActivity
kullanın veyaFragment
desteğini kullanın. ViewModelProviders
veViewModelStores
listelerine@NonNull
ek açıklama eklendiViewModelProviders
oluşturucu kullanımdan kaldırıldı - lütfen statik yöntemlerini doğrudan kullanınViewModelProviders.DefaultFactory
desteği sonlandırıldı - lütfenViewModelProvider.AndroidViewModelFactory
kullanınViewModel
veAndroidViewModel
örnekleri oluşturmaya uygun bir statikFactory
almak için statikViewModelProvider.AndroidViewModelFactory.getInstance(Application)
yöntemi eklendi.