Lifecycle
Actualización más reciente | Versión estable actual | Próxima versión potencial | Versión Beta | Versión Alfa |
---|---|---|---|---|
19 de agosto de 2020 | 2.2.0 | - | - | 2.3.0-alpha07 |
Cómo declarar dependencias
Para agregar una dependencia en Lifecycle, debes agregar el repositorio de Maven de Google a tu proyecto. Lee el repositorio Maven de Google para obtener más información.
Agrega las dependencias de los artefactos que necesites en el archivo build.gradle
de tu app o módulo:
Kotlin
dependencies { def lifecycle_version = "2.2.0" def arch_version = "2.1.0" // ViewModel implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$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" // 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" }
Java
dependencies { def lifecycle_version = "2.2.0" def arch_version = "2.1.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" }
Para obtener más información sobre las dependencias, consulta Cómo agregar dependencias de compilación.
Comentarios
Tus comentarios ayudan a mejorar Jetpack. Avísanos si descubres nuevos errores o tienes ideas para mejorar esta biblioteca. Consulta los errores existentes en esta biblioteca antes de crear uno nuevo. Para agregar tu voto a un problema existente, haz clic en el botón de estrella.
Consulta la documentación sobre la Herramienta de seguimiento de errores para obtener más información.
Versión 2.3.0
Versión 2.3.0-alpha07
19 de agosto de 2020
Lanzamiento de androidx.lifecycle:lifecycle-*:2.3.0-alpha07
. La versión 2.3.0-alpha07 contiene estas confirmaciones.
Correcciones de errores
- Se corrigió una falla en la comprobación de lint
NullSafeMutableLiveData
. (aosp/1395367)
Versión 2.3.0-alpha06
22 de julio de 2020
Lanzamiento de androidx.lifecycle:lifecycle-*:2.3.0-alpha06
. La versión 2.3.0-alpha06 contiene estas confirmaciones.
Nuevas funciones
- Se agregaron métodos auxiliares estáticos de
downFrom(State)
,downTo(State)
,upFrom(State)
,upTo(State)
al objetoLifecycle.Event
para generar el elementoEvent
en función del parámetroState
y una dirección de transición. Se agregó el métodogetTargetState()
que proporciona el elementoState
al que el objeto Lifecycle pasará directamente después del parámetroEvent
. (I00887) - Se agregaron las API de
Lifecycle.withStateAtLeast
que esperan un estado de ciclo de vida y ejecutan un bloque de código sin suspensión de forma síncrona en el punto de cambio de estado, y se reanudan con el resultado. Estas API difieren de los métodoswhen*
existentes, ya que no permiten ejecutar el código de suspensión ni emplean un despachador personalizado. (aosp/1326081)
Cambios en el comportamiento
- El elemento LifecycleRegistry ahora aplica el objeto
DESTROYED
como un estado terminal. (I00887) - El objeto
LifecycleRegistry
ahora verifica que sus métodos se llamen en el subproceso principal. Siempre fue un requisito para los ciclos de vida de las actividades, los fragmentos, etc. Agregar observadores de subprocesos que no eran principales generaba dificultades a fin de detectar fallas en el tiempo de ejecución. En el caso de los objetosLifecycleRegistry
que pertenecen a tus propios componentes, puedes optar por no participar explícitamente de las comprobaciones mediante el elementoLifecycleRegistry.createUnsafe(...)
, pero debes asegurarte de que exista una sincronización apropiada cuando se acceda a este objetoLifecycleRegistry
desde diferentes subprocesos. (Ie7280, b/137392809)
Correcciones de errores
- Se corrigió una falla en el objeto
NullSafeMutableLiveData
. (b/159987480) - Se corrigió un objeto
ObsoleteLintCustomCheck
para las comprobaciones de Lint agrupadas con el elementolifecycle-livedata-core-ktx
(y, específicamente, el objetoNullSafeMutableLiveData
). (b/158699265)
Versión 2.3.0-alpha05
24 de junio de 2020
Lanzamiento de androidx.lifecycle:lifecycle-*:2.3.0-alpha05
. La versión 2.3.0-alpha05 contiene estas confirmaciones.
Correcciones de errores
LiveData
ahora maneja mejor los casos de reentrantes y evita las llamadas duplicadas aonActive()
oonInactive()
. (b/157840298)- Se solucionó un problema en el que las verificaciones de Lint no se ejecutaban en Android Studio 4.1 Canary 6 o versiones posteriores. (aosp/1331903)
Versión 2.3.0-alpha04
10 de junio de 2020
Lanzamiento de androidx.lifecycle:lifecycle-*:2.3.0-alpha04
. La versión 2.3.0-alpha04 contiene estas confirmaciones.
Correcciones de errores
- Se corrigió una falla en la comprobación de lint
NonNullableMutableLiveData
. (b/157294666) - La comprobación de lint
NonNullableMutableLiveData
ahora abarca muchos más casos en los que se estableció un valornull
en unMutableLiveData
con un parámetro de tipo no nulo. (b/156002218)
Versión 2.3.0-alpha03
20 de mayo de 2020
Lanzamiento de androidx.lifecycle:lifecycle-*:2.3.0-alpha03
. La versión 2.3.0-alpha03 contiene estas confirmaciones.
Nuevas funciones
SavedStateHandle
ahora admite la serialización diferida, ya que te permite llamar asetSavedStateProvider()
para una clave determinada, lo que proporciona unSavedStateProvider
que devolverá la llamada asaveState()
cuando se le solicite aSavedStateHandle
guardar su estado. (b/155106862)- Una nueva API de
ViewTreeViewModelStoreOwner.get(View)
te permite recuperar elViewModelStoreOwner
contenedor dado que tiene una instancia deView
. Debes actualizar a Activity1.2.0-alpha05
, Fragment1.3.0-alpha05
y AppCompat1.3.0-alpha01
para completarlo correctamente. Se agregó una extensiónfindViewModelStoreOwner()
de Kotlin alifecycle-viewmodel-ktx
. (aosp/1295522)
Correcciones de errores
- Se corrigió un problema que impedía publicar las comprobaciones de lint
MutableLiveData
lanzadas en Lifecycle2.3.0-alpha01
junto con el artefactolifecycle-livedata-core-ktx
. (b/155323109)
Versión 2.3.0-alpha02
29 de abril de 2020
Lanzamiento de androidx.lifecycle:lifecycle-*:2.3.0-alpha02
. La versión 2.3.0-alpha02 contiene estas confirmaciones.
Cambios en la API
SavedStateViewModelFactory
ahora te permite pasar unApplication
nulo a su constructor para mejorar los casos en los que uno no está disponible y no se necesita compatibilidad conAndroidViewModel
. (aosp/1285740)
Correcciones de errores
- Se mejoró el rendimiento de inicio en frío al evitar errores de verificación de clase en la API 28 y versiones anteriores. (aosp/1282118)
Versión 2.3.0-alpha01
4 de marzo de 2020
Lanzamiento de androidx.lifecycle:lifecycle-*:2.3.0-alpha01
. La versión 2.3.0-alpha01 contiene estas confirmaciones.
Nuevas funciones
- Una nueva API de
ViewTreeLifecycleOwner.get(View)
te permite recuperar elLifecycleOwner
contenedor dado que tiene una instancia deView
. Debes actualizar a Activity1.2.0-alpha01
y Fragment1.3.0-alpha01
para completarlo correctamente. Hay una extensión de Kotlin defindViewTreeLifecycleOwner
disponible enlifecycle-runtime-ktx
. (aosp/1182361, aosp/1182956) - Se agregó una nueva verificación de Lint que te avisa al establecer un valor
null
en unMutableLiveData
que se definió en Kotlin como no nulo. Esta función está disponible al usar los artefactoslivedata-core-ktx
olivedata-ktx
. (aosp/1154723, aosp/1159092) - Hay un nuevo artefacto
lifecycle-runtime-testing
disponible que proporciona unTestLifecycleOwner
que implementaLifecycleOwner
y proporciona unLifecycle
mutable seguro para subprocesos. (aosp/1242438)
Correcciones de errores
- El artefacto
lifecycle-runtime
ahora tiene un nombre de paquete único. (aosp/1187196)
Versión 2.2.0
ViewModel-SavedState versión 2.2.0
5 de febrero de 2020
Lanzamiento de androidx.lifecycle:lifecycle-viewmodel-savedstate:2.2.0
. La versión 2.2.0 contiene estas confirmaciones.
Lifecycle ViewModel SavedState ahora comparte la misma versión que otros artefactos del Lifecycle. El comportamiento de 2.2.0
es idéntico al comportamiento de 1.0.0
.
Versión 2.2.0
22 de enero de 2020
Lanzamiento de androidx.lifecycle:lifecycle-*:2.2.0
. La versión 2.2.0 contiene estas confirmaciones.
Cambios importantes desde la versión 2.1.0
- Integración de la corrutina de Lifecycle: El nuevo artefacto
lifecycle-runtime-ktx
agrega integración entre las corrutinas de Lifecycle y Kotlin. También se expandiólifecycle-livedata-ktx
para aprovechar las corrutinas. Consulta Cómo usar corrutinas de Kotlin con los componentes de la arquitectura para obtener más detalles. - Se dio de baja
ViewModelProviders.of()
:ViewModelProviders.of()
dejó de estar disponible. Puedes pasar un elementoFragment
oFragmentActivity
al nuevo constructorViewModelProvider(ViewModelStoreOwner)
para lograr la misma funcionalidad cuando utilizas Fragment1.2.0
- Se dio de baja el artefacto
lifecycle-extensions
: Dado queViewModelProviders.of()
dejó de estar disponible, esta versión marca la baja de la última API enlifecycle-extensions
y este artefacto se debería considerar obsoleto en su totalidad. Te recomendamos depender de los artefactos específicos de Lifecycle que necesites (por ejemplo,lifecycle-service
si usasLifecycleService
, ylifecycle-process
si usasProcessLifecycleOwner
) en lugar de utilizarlifecycle-extensions
, ya que no habrá una versión2.3.0
futura delifecycle-extensions
. - Procesador de anotaciones graduales de Gradle: El procesador de anotaciones de Lifecycle es gradual de forma predeterminada.
Si tu app está escrita en el lenguaje de programación de Java 8, puedes usar
DefautLifecycleObserver
. Si está escrita en Java 7, puedes usarLifecycleEventObserver
.
Versión 2.2.0-rc03
4 de diciembre de 2019
Lanzamiento de androidx.lifecycle:lifecycle-*:2.2.0-rc03
. La versión 2.2.0-rc03 contiene estas confirmaciones.
Correcciones de errores
- Se corrigió un error que se producía cuando un objeto
ViewModel
ficticio se almacenaba enViewModelStore
y se lo solicitaba más tarde con la configuración de fábrica predeterminada. - Corrige un uso de
Dispatchers.Main.immediate
enlaunchWhenCreated
y métodos similares para que se los llame de forma síncrona durante el evento de ciclo de vida correspondiente. (aosp/1156203)
Contribuciones externas
- Gracias a Anders Järleberg por contribuir con la corrección. (aosp/1156203)
- Gracias a Vsevolod Tolstopyatov de Jetbrains por revisar una implementación de ejecución intercalada.
Cambios de dependencia
- Las extensiones de Lifecycle ahora dependen de Fragment
1.2.0-rc03
.
Versión 2.2.0-rc02
7 de noviembre de 2019
Lanzamiento de androidx.lifecycle:lifecycle-*:2.2.0-rc02
. La versión 2.2.0-rc02 contiene estas confirmaciones.
Correcciones de errores
- Se corrigió un error en la configuración de ProGuard de la biblioteca que afectaba a los dispositivos que ejecutaban API 28+ si la API de destino era inferior a 29 (b/142778206).
Versión 2.2.0-rc01
23 de octubre de 2019
Lanzamiento de androidx.lifecycle:lifecycle-*:2.2.0-rc01
. La versión 2.2.0-rc01 contiene estas confirmaciones.
Correcciones de errores
- Se corrigió un problema en el que
launchWhenCreated
y los métodos relacionados ejecutaban un marco más tarde que el método de ciclo de vida asociado debido al uso deDispatchers.Main
, en lugar deDispatchers.Main.immediate
(aosp/1145596).
Contribuciones externas
- Gracias a Nicklas Ansman por contribuir con la corrección (aosp/1145596).
Versión 2.2.0-beta01
9 de octubre de 2019
Lanzamiento de androidx.lifecycle:lifecycle-*:2.2.0-beta01
. La versión 2.2.0-beta01 contiene estas confirmaciones.
Correcciones de errores
- Se corrigió una regresión introducida en Lifecycle 2.2.0-alpha05 en el pedido de
ProcessLifecycleOwner
y el movimiento deLifecycleOwner
de la actividad de inicio y reanudación en dispositivos Android 10 (aosp/1128132). - Se corrigió una regresión introducida en Lifecycle
2.2.0-alpha05
que generaba unaNullPointerException
al usar la versión2.0.0
o2.1.0
delifecycle-process
(b/141536990).
Versión 2.2.0-alpha05
18 de septiembre de 2019
Lanzamiento de androidx.lifecycle:lifecycle-*:2.2.0-alpha05
. La versión 2.2.0-alpha05 contiene estas confirmaciones.
Correcciones de errores
- Se corrigió una condición de carrera en el compilador de objetos LiveData de corrutina (b/140249349).
Versión 2.2.0-alpha04
5 de septiembre de 2019
Lanzamiento de androidx.lifecycle:lifecycle-*:2.2.0-alpha04
. Para conocer las confirmaciones incluidas en esta versión, consulta este artículo.
Nuevas funciones
lifecycleScope
,whenCreated
,whenStarted
,whenResumed
,viewModelScope
y la implementación subyacente deliveData
ahora usanDispatchers.Main.immediate
, en lugar deDispatchers.Main
(b/139740492).
Contribuciones externas
- Gracias a Nicklas Ansman por contribuir con el cambio a
Dispatchers.Main.immediate
(aosp/1106073).
Versión 2.2.0-alpha03
7 de agosto de 2019
Lanzamiento de androidx.lifecycle:lifecycle-*:2.2.0-alpha03
. Para conocer las confirmaciones incluidas en esta versión, consulta este artículo.
Nuevas funciones
- Las implementaciones de
ViewModelStoreOwner
ahora tienen la opción de implementarHasDefaultViewModelProviderFactory
para proporcionar un valorViewModelProvider.Factory
predeterminado. Este es el caso de This has been done for Activity1.1.0-alpha02
, Fragment1.2.0-alpha02
y Navigation2.2.0-alpha01
(aosp/1092370, b/135716331).
Cambios en la API
- El elemento
ViewModelProviders.of()
ahora es obsoleto. Puedes pasar un elementoFragment
oFragmentActivity
al nuevo constructorViewModelProvider(ViewModelStoreOwner)
para lograr la misma funcionalidad (aosp/1009889).
Versión 2.2.0-alpha02
2 julio de 2019
Lanzamiento de androidx.lifecycle:*:2.2.0-alpha02
. Para conocer las confirmaciones incluidas en esta versión, consulta este vínculo.
Cambios en la API
- Se reemplazó
LiveDataScope.initialValue
porLiveDataScope.latestValue
, que realizará un seguimiento del valor emitido actual del bloqueliveData
. - Se agregó una nueva sobrecarga al compilador
liveData
que recibe el parámetrotimeout
comoDuration
de tipo.
Versión 2.2.0-alpha01
7 de mayo de 2019
Lanzamiento de androidx.lifecycle:*:2.2.0-alpha01
. Para conocer las confirmaciones incluidas en esta versión, consulta este artículo.
Nuevas funciones
- Esta versión cuenta con nuevas funciones que brindan compatibilidad con las corrutinas de Kotlin para Lifecycle y LiveData. Aquí encontrarás documentación detallada sobre estas.
ViewModel-SavedState versión 1.0.0
Versión 1.0.0
22 de enero de 2020
Lanzamiento de androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0
. La versión 1.0.0 contiene estas confirmaciones.
Funciones importantes de la versión 1.0.0
- Se agregó una nueva clase SavedStateHandle. Permite que las clases
ViewModel
accedan y contribuyan al estado guardado. Este objeto se puede recibir en el constructor de la claseViewModel
, y las fábricas proporcionadas de forma predeterminada por Fragments y AppCompatActivity introduciránSavedStateHandle
automáticamente. - Se agregó AbstractSavedStateViewModelFactory. Te permite crear fábricas personalizadas para la clase
ViewModel
y proporcionarles acceso aSavedStateHandle
.
ViewModel-Savedstate versión 1.0.0-rc03
4 de diciembre de 2019
Lanzamiento de androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0-rc03
. La versión 1.0.0-rc03 contiene estas confirmaciones.
Cambios de dependencia
- Lifecycle ViewModel SavedState ahora depende de Lifecycle
2.2.0-rc03
.
Viewmodel-Savedstate versión 1.0.0-rc02
7 de noviembre de 2019
Lanzamiento de androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0-rc02
. La versión 1.0.0-rc02 contiene estas confirmaciones.
Cambios de dependencia
- Ahora depende de Lifecycle
2.2.0-rc02
.
ViewModel-SavedState versión 1.0.0-rc01
23 de octubre de 2019
Lanzamiento de androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0-rc01
sin cambios desde 1.0.0-beta01
. La versión 1.0.0-rc01 contiene estas confirmaciones.
ViewModel-Savedstate versión 1.0.0-beta01
9 de octubre de 2019
Lanzamiento de androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0-beta01
. La versión 1.0.0-beta01 contiene estas confirmaciones.
Correcciones de errores
- Se corrigió un problema en el que acceder a SavedState ViewModel por primera vez en
Activity.onActivityResult()
generaba unaIllegalStateException
(b/139093676). - Se corrigió una
IllegalStateException
al usarAbstractSavedStateViewModelFactory
(b/141225984).
ViewModel-SavedState versión 1.0.0-alpha05
18 de septiembre de 2019
Lanzamiento de androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0-alpha05
. La versión 1.0.0-alpha05 contiene estas confirmaciones.
Cambios en la API
SavedStateViewModelFactory
ya no extiendeAbstractSavedStateViewModelFactory
, ySavedStateHandle
se crea solo para las instancias de ViewModels que lo solicitan (aosp/1113593).
ViewModel-SavedState versión 1.0.0-alpha03
7 de agosto de 2019
Lanzamiento de androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0-alpha03
. Para conocer las confirmaciones incluidas en esta versión, consulta este vínculo.
Cambios rotundos
lifecycle-viewmodel-savedstate
ya no depende defragment
, y se quitaron los constructoresSavedStateViewModelFactory(Fragment)
ySavedStateViewModelFactory(FragmentActivity)
relacionados. En su lugar,SavedStateViewModelFactory
ahora es el valor de fábrica predeterminado para Activity1.1.0-alpha02
, Fragment1.2.0-alpha02
y Navigation2.2.0-alpha01
(b/135716331).
ViewModel-SavedState versión 1.0.0-alpha02
2 julio de 2019
Lanzamiento de androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0-alpha02
. Para conocer las confirmaciones incluidas en esta versión, consulta este artículo.
Nuevas funciones
- Se agregó la sobrecarga de
SavedStateHandle.getLiveData()
, que acepta un valor predeterminado.
Cambios en la API
- El nombre de
SavedStateVMFactory
cambió porSavedStateViewModelFactory
. - El nombre de
AbstractSavedStateVMFactory
cambió porAbstractSavedStateViewModelFactory
.
ViewModel-Savedstate versión 1.0.0-alpha01
13 de marzo de 2019
Lanzamiento de androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0-alpha01
. Para obtener el registro completo de confirmaciones para esta versión inicial, consulta este vínculo.
Nuevas funciones
- Ahora,
ViewModels
puede contribuir con SavedState. Para hacerlo, usa la clase predeterminadaSavedStateVMFactory
, recientemente introducida, y tu ViewModel debería tener un constructor que reciba el objetoSavedStateHandle
como parámetro.
Versión 2.1.0
Cambios importantes desde 2.0.0
- Se agregó
LifecycleEventObserver
para los casos en que se necesita una secuencia de eventos de Lifecycle. Es una API pública, en lugar de una claseGenericLifecycleObserver
oculta. - Se agregaron extensiones ktx para los métodos
LiveData.observe
yTransformations.*
. - Se agregó el método
Transformations.distinctUntilChanged
, que permite crear un nuevo objeto de LiveData que no emite ningún valor hasta que se cambia el valor de origen deLiveData
. - Se agregó compatibilidad con corrutinas en ViewModels gracias a que se agregó la propiedad de extensión
ViewModel.viewModelScope
.
Versión 2.1.0
5 de septiembre de 2019
Lanzamiento de androidx.lifecycle:lifecycle-*:2.1.0
. Para conocer las confirmaciones incluidas en esta versión, consulta este vínculo.
Versión 2.1.0-rc01
2 julio de 2019
Lanzamiento de androidx.lifecycle:*:2.1.0-rc01
sin cambios desde androidx.lifecycle:*:2.1.0-beta01
. Para conocer las confirmaciones incluidas en esta versión, consulta este vínculo.
Versión 2.1.0-beta01
7 de mayo de 2019
Lanzamiento de androidx.lifecycle:*:2.1.0-beta01
. Para conocer las confirmaciones incluidas en esta versión, consulta este artículo.
Nuevas funciones
- Se cambia la versión de Lifecycle a Beta: se estabilizan las API introducidas en las versiones Alfa anteriores, como las funciones de extensión de
liveData
para transformaciones y observaciones, la inicialización deViewModel
con delegación de propiedades y otras, que no se modificarán.
Versión 2.1.0-alpha04
3 de abril de 2019
Lanzamiento de androidx.lifecycle:*:2.1.0-alpha04
. Para conocer las confirmaciones incluidas en esta versión, consulta este vínculo.
Cambios en la API
- Cambio rotundo: se cambió la API subyacente detrás de
by viewModels()
yby activityViewModels()
para admitir directamenteViewModelStore
, en lugar de solo unViewModelStoreOwner
(aosp/932932).
Versión 2.1.0-alpha03
13 de marzo de 2019
Lanzamiento de androidx.lifecycle:*:2.1.0-alpha03
. Para obtener una lista completa de las confirmaciones incluidas en esta versión, consulta este vínculo.
Cambios en la API
- Se quitó
ViewModelProvider.KeyedFactory
. La segunda interfaz, además deViewModelProvider.Factory
, no se ejecutaba correctamente con las nuevas funciones, como delegación de propiedades enby viewmodels {}
de Kotlin (aosp/914133).
Versión 2.1.0-alpha02
30 de enero de 2019
Lanzamiento de androidx.lifecycle 2.1.0-alpha02
.
Cambios en la API
- Ahora
LifecycleRegistry
contiene un métodosetCurrentState()
que reemplaza el métodosetState()
obsoleto (aosp/880715).
Correcciones de errores
- Se corrigió un problema en el que fallaban las instancias simuladas de
ViewModel
cuando se borraba el elementoViewModelStore
que las contenía (b/122273087).
Versión 2.1.0-alpha01
17 de diciembre de 2018
Lanzamiento de androidx.lifecycle 2.1.0-alpha01
.
Nuevas funciones
- Se agregó
LifecycleEventObserver
para los casos en que se necesita una secuencia de eventos de Lifecycle. Es una API pública, en lugar de una claseGenericLifecycleObserver
oculta. - Se agregaron extensiones ktx para los métodos
LiveData.observe
yTransformations.*
. - Se agregó el método
Transformations.distinctUntilChanged
. Permite crear un nuevo objeto deLiveData
que no emite ningún valor hasta que se cambia el valor de origen de LiveData. - Se agregó la compatibilidad con corrutinas en ViewModels: se agregó la propiedad de extensión
ViewModel.viewModelScope
. - Se agregó
ViewModelProvider.KeyedFactory
, un valor de fábrica para ViewModels que recibekey
yClass
en el métodocreate
.
Versión 2.0.0
Versión 2.0.0
21 de septiembre de 2018
Lanzamiento de Lifecycle 2.0.0
con una corrección de errores desde 2.0.0-rc01
en ViewModel.
Correcciones de errores
- Se corrigió un error de ProGuard de ViewModel que quitaba constructores de manera incorrecta (b/112230489).
Versión 2.0.0-beta01
2 de julio de 2018
Correcciones de errores
- Se corrigió la regla ProGuard de LifecycleObserver solo para mantener implementaciones, y no subinterfaces. b/71389427
- Se corrigieron las reglas ProGuard de ViewModel para permitir la ofuscación y la contracción.
Versiones anteriores a AndroidX
Para las siguientes versiones de Lifecycle anteriores a AndroidX, incluye estas dependencias:
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"
}
Versión 1.1.1
21 de marzo de 2018
Solo un pequeño cambio: se movió android.arch.core.util.Function
de arch:runtime
a arch:common
. De esta manera, es posible usarla sin la dependencia del tiempo de ejecución, p. ej., en paging:common
a continuación.
lifecycle:common
es una dependencia de lifecycle:runtime
, de manera que este cambio no afecta a lifecycle:runtime
directamente, sino que solo afecta a los módulos que dependen de manera directa de lifecycle:common
, como sucede con Paging.
Versión 1.1.0
22 de enero de 2018
Cambios de empaquetado
Ahora hay dependencias nuevas y mucho más pequeñas disponibles:
android.arch.lifecycle:livedata:1.1.0
android.arch.lifecycle:viewmodel:1.1.0
Cambios en la API
- Se quitaron
LifecycleActivity
yLifecycleFragment
, ya que dejaron de estar disponibles. En su lugar, usaFragmentActivity
oAppCompatActivity
, o bien asegúrate de queFragment
sea compatible. - Se agregaron anotaciones de
@NonNull
aViewModelProviders
yViewModelStores
. - El constructor
ViewModelProviders
dejó de estar disponible. Usa sus métodos estáticos directamente. ViewModelProviders.DefaultFactory
dejó de estar disponible. UsaViewModelProvider.AndroidViewModelFactory
.- Se agregó el método
ViewModelProvider.AndroidViewModelFactory.getInstance(Application)
estático para recuperar un valorFactory
estático apto para la creación de instanciasViewModel
yAndroidViewModel
.