Lifecycle
Esta tabela lista todos os artefatos no grupo androidx.lifecycle
.
Artefato | Versão estável atual | Próximo candidato a lançamento | Versão Beta | Versão Alfa |
---|---|---|---|---|
lifecycle-* | 2.3.1 | - | - | 2.4.0-alpha01 |
lifecycle-viewmodel-compose | - | - | - | 1.0.0-alpha03 |
Como declarar dependências
Para adicionar uma dependência ao Lifecycle, é preciso adicionar o repositório Maven do Google ao seu projeto. Leia Repositório Maven do Google para ver mais informações.
Adicione as dependências dos artefatos necessários no arquivo build.gradle
para
seu app ou módulo:
Kotlin
dependencies { def lifecycle_version = "2.3.1" 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" // Jetpack Compose Integration for ViewModel implementation "androidx.lifecycle:lifecycle-viewmodel-compose:1.0.0-alpha03" // 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.3.1" 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 ver mais informações sobre dependências, consulte Adicionar dependências de compilação.
Feedback
Seu feedback ajuda a melhorar o Jetpack. Avise se você descobrir novos problemas ou tiver ideias para melhorar esta biblioteca. Consulte os problemas existentes (link em inglês) nesta biblioteca antes de criar um novo. Adicione seu voto a um problema existente clicando no botão de estrela.
Consulte a documentação do Issue Tracker para ver mais informações.
Versão 2.4.0
Versão 2.4.0-alpha01
24 de março de 2021
Lançamento de androidx.lifecycle:lifecycle-*:2.4.0-alpha01
. A versão 2.4.0-alpha01 contém estas confirmações.
Mudanças de comportamento
O
lifecycle-process
agora usaandroidx.startup
para inicializar oProcessLifecycleOwner
.Anteriormente, isso era feito pelo
androidx.lifecycle.ProcessLifecycleOwnerInitializer
.Se você usava
tools:node="remove"
, oContentProvider
que era usado para inicializar o ciclo de vida do processo anteriormente, será necessário fazer o seguinte.<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>
(ou)
<!-- If you want to disable androidx.startup completely. --> <provider android:name="androidx.startup.InitializationProvider" android:authorities="${applicationId}.androidx-startup" tools:node="remove"> </provider>
Mudanças na API
- Uma nova API
Flow.flowWithLifecycle
que emite valores do fluxo upstream quando o ciclo de vida fica pelo menos em um determinado estado usando a APILifecycle.repeatOnLifecycle
. Essa é uma alternativa à nova APILifecycleOwner.addRepeatinJob
(I0f4cd).
Correções de bugs
- No Lifecycle 2.3.1: a regra de lint
NonNullableMutableLiveData
agora pode diferenciar adequadamente entre variáveis de campo com diferentes valores de nulidade (b/169249668).
Lifecycle Viewmodel Compose versão 1.0.0
Versão 1.0.0-alpha03
10 de Março de 2021
Lançamento de androidx.lifecycle:lifecycle-viewmodel-compose:1.0.0-alpha03
. A versão 1.0.0-alpha03 contém estas confirmações.
Mudanças na API
LocalViewModelStoreOwner.current
agora retorna umViewModelStoreOwner
anulável para determinar melhor se umViewModelStoreOwner
está disponível na composição atual. As APIs que exigem umViewModelStoreOwner
, comoviewModel()
eNavHost
, ainda geram uma exceção se umViewModelStoreOwner
não está definido (Idf39a).
Lifecycle-Viewmodel-Compose versão 1.0.0-alpha02
24 de fevereiro de 2021
Lançamento de androidx.lifecycle:lifecycle-viewmodel-compose:1.0.0-alpha02
. A versão 1.0.0-alpha02 contém essas confirmações.
Mudanças na API
LocalViewModelStoreOwner
agora tem uma funçãoprovides
que pode ser usada com oCompositionLocalProvider
, substituindo a APIasProvidableCompositionLocal()
(I45d24).
Lifecycle-Viewmodel-Compose versão 1.0.0-alpha01
10 de fevereiro de 2021
Lançamento de androidx.lifecycle:lifecycle-viewmodel-compose:1.0.0-alpha01
. A versão 1.0.0-alpha01 contém essas confirmações (link em inglês).
Novos recursos
- O elemento que pode ser composto
viewModel()
eLocalViewModelStoreOwner
foram movidos deandroidx.compose.ui.viewinterop
para este artefato no pacoteandroidx.lifecycle.viewmodel.compose
(I7a374).
Versão 2.3.1
Lifecycle versão 2.3.1
24 de março de 2021
Lançamento de androidx.lifecycle:lifecycle-*:2.3.1
. A versão 2.3.1 contém estas confirmações.
Correções de bugs
- A regra de lint
NonNullableMutableLiveData
agora pode diferenciar corretamente entre variáveis de campo com diferentes valores de nulidade (b/169249668).
Versão 2.3.0
Versão 2.3.0
10 de fevereiro de 2021
Lançamento de androidx.lifecycle:lifecycle-*:2.3.0
. A versão 2.3.0 contém essas confirmações (link em inglês).
Principais mudanças desde a versão 2.2.0
- Compatibilidade com
SavedStateHandle
para classes não comparáveis:SavedStateHandle
agora é compatível com a serialização lenta, permitindo que você chamesetSavedStateProvider()
para determinada chave, fornecendo umSavedStateProvider
que receberá um callback parasaveState()
quando for solicitado queSavedStateHandle
salve o estado dele. Consulte Salvar classes não comparáveis. - Aplicação do comportamento do ciclo de vida:
- O LifecycleRegistry agora aplica o
DESTROYED
como um estado terminal. LifecycleRegistry
agora verifica se os métodos são chamados na linha de execução principal. Sempre foi um requisito para ciclos de vida de atividades, fragmentos etc. Uma adição de observadores das linhas de execução não principais gerava dificuldade para capturar falhas no tempo de execução. Para objetosLifecycleRegistry
que pertencem aos seus componentes, você pode desativar explicitamente as verificações com o uso deLifecycleRegistry.createUnsafe(...)
. Mas é necessário garantir que haja uma sincronização adequada quandoLifecycleRegistry
é acessado de diferentes linhas de execução.
- O LifecycleRegistry agora aplica o
- Auxiliadores de evento e estado do ciclo de vida: foram adicionados métodos auxiliares estáticos de
downFrom(State)
,downTo(State)
,upFrom(State)
,upTo(State)
aLifecycle.Event
para gerar oEvent
com umState
e uma direção de transição. Adição do métodogetTargetState()
que fornece oState
para qual o Lifecycle mudará diretamente depois doEvent
. withStateAtLeast
: adição de APIsLifecycle.withStateAtLeast
que aguardam um estado de ciclo de vida e executam um bloco de código não suspenso de forma síncrona no ponto de mudança de estado, depois retomam com o resultado. Essas APIs são diferentes dos métodoswhen*
existentes, porque não permitem a execução do código de suspensão e não empregam um dispatcher personalizado (aosp/1326081).- APIs de
ViewTree
: as novas APIsViewTreeLifecycleOwner.get(View)
eViewTreeViewModelStoreOwner.get(View)
permitem que você recupere oLifecycleOwner
e oViewModelStoreOwner
contidos, respectivamente, de uma instânciaView
. É necessário fazer upgrade para o Activity1.2.0
, Fragment1.3.0
e AppCompat 1.3.0-alpha01 ou mais recente para preencher corretamente. As extensões KotlinfindViewTreeLifecycleOwner
efindViewTreeViewModelStoreOwner
estão disponíveis emlifecycle-runtime-ktx
elifecycle-viewmodel-ktx
, respectivamente. - Suspensão de uso da extensão Kotlin
LiveData.observe()
: a extensão KotlinLiveData.observe()
necessária para usar a sintaxe lambda teve o uso suspenso, porque ela não é necessária ao usar o Kotlin 1.4.
Versão 2.3.0-rc01
16 de dezembro de 2020
Lançamento do androidx.lifecycle:lifecycle-*:2.3.0-rc01
. A versão 2.3.0-rc01 contém essas confirmações (link em inglês).
Correções de bugs
- O método
keys()
deSavedStateHandle
agora é consistente antes e depois de o estado ser salvo. Agora, ele inclui chaves usadas anteriormente comsetSavedStateProvider()
além das chaves usadas comset()
egetLiveData()
(aosp/1517919, b/174713653).
Contribuição externa
- As APIs para suspender corrotinas com reconhecimento de ciclo de vida agora processam melhor as chamadas para
yield()
. Obrigado, Nicklas Ansman Giertz! (aosp/1430830, b/168777346)
Versão 2.3.0-beta01
1º de outubro de 2020
Lançamento do androidx.lifecycle:lifecycle-*:2.3.0-beta01
. A versão 2.3.0-beta01 contém estas confirmações.
Mudanças na API
- A extensão Kotlin
LiveData.observe()
necessária para usar a sintaxe lambda teve o uso suspenso, porque ela não é necessária ao usar o Kotlin 1.4 (I40d3f).
Correções de bugs
- Atualização do AndroidX para usar o Kotlin 1.4 (Id6471, b/165307851, b/165300826).
Mudanças na documentação
- O builder
liveData
e os documentosasLiveData()
foram atualizados para incluir detalhes sobre como mudar os valores de tempo limite fornecidos (aosp/1122324).
Versão 2.3.0-alpha07
19 de agosto de 2020
Lançamento do androidx.lifecycle:lifecycle-*:2.3.0-alpha07
. A versão 2.3.0-alpha07 contém essas confirmações.
Correções de bugs
- Correção de uma falha na verificação de lint
NullSafeMutableLiveData
(aosp/1395367).
Versão 2.3.0-alpha06
22 de julho de 2020
Lançamento do androidx.lifecycle:lifecycle-*:2.3.0-alpha06
. A versão 2.3.0-alpha06 contém essas confirmações.
Novos recursos
- Adição de métodos auxiliares estáticos de
downFrom(State)
,downTo(State)
,upFrom(State)
,upTo(State)
aLifecycle.Event
para gerar oEvent
com umState
e uma direção de transição. Adição do métodogetTargetState()
que fornece oState
para qual o Lifecycle mudará diretamente depois doEvent
(I00887). - Adição de APIs
Lifecycle.withStateAtLeast
que aguardam um estado de ciclo de vida e executam um bloco de código não suspenso de forma síncrona no ponto de mudança de estado, depois retomam com o resultado. Essas APIs são diferentes dos métodoswhen*
existentes, porque não permitem a execução do código de suspensão e não empregam um dispatcher personalizado (aosp/1326081).
Mudanças de comportamento
- O LifecycleRegistry agora aplica o
DESTROYED
como um estado terminal. (I00887). LifecycleRegistry
agora verifica se os métodos são chamados na linha de execução principal. Sempre foi um requisito para ciclos de vida de atividades, fragmentos etc. Uma adição de observadores das linhas de execução não principais gerava dificuldade para capturar falhas no tempo de execução. Para objetosLifecycleRegistry
que pertencem aos seus componentes, você pode desativar explicitamente as verificações com o uso deLifecycleRegistry.createUnsafe(...)
. Mas é necessário garantir que haja uma sincronização adequada quandoLifecycleRegistry
é acessado de diferentes linhas de execução (Ie7280, b/13392809).
Correções de bugs
- Correção de uma falha em
NullSafeMutableLiveData
(b/159987480). - Correção de uma
ObsoleteLintCustomCheck
para verificações de lint empacotadas comlifecycle-livedata-core-ktx
e especificamente comNullSafeMutableLiveData
(b/158699265).
Versão 2.3.0-alpha05
24 de junho de 2020
Lançamento do androidx.lifecycle:lifecycle-*:2.3.0-alpha05
. A versão 2.3.0-alpha05 contém essas confirmações (link em inglês).
Correções de bugs
LiveData
agora lida melhor com casos reentrantes, evitando chamadas duplicadas paraonActive()
ouonInactive()
(b/157840298).- Correção de um problema em que as verificações de lint não eram executadas ao usar o Android Studio 4.1 Canary 6 ou versão mais recente (aosp/1331903)
Versão 2.3.0-alpha04
10 de junho de 2020
Lançamento do androidx.lifecycle:lifecycle-*:2.3.0-alpha04
. A versão 2.3.0-alpha04 contém essas confirmações (link em inglês).
Correções de bugs
- Correção de uma falha na verificação de lint
NonNullableMutableLiveData
(b/157294666). - A verificação de lint
NonNullableMutableLiveData
agora abrange um número significativamente maior de casos em que o valornull
era definido em umMutableLiveData
com um parâmetro de tipo não nulo (b/156002218, link em inglês).
Versão 2.3.0-alpha03
20 de maio de 2020
Lançamento de androidx.lifecycle:lifecycle-*:2.3.0-alpha03
. A versão 2.3.0-alpha03 contém essas confirmações (link em inglês).
Novos recursos
SavedStateHandle
agora é compatível com a serialização lenta, permitindo que você chamesetSavedStateProvider()
para determinada chave, fornecendo umSavedStateProvider
que receberá um callback parasaveState()
quando for solicitado queSavedStateHandle
salve o estado dele (b/155106862).- Uma nova API
ViewTreeViewModelStoreOwner.get(View)
permite que você recupere oViewModelStoreOwner
cheio diante de uma instânciaView
. É necessário fazer upgrade para Activity1.2.0-alpha05
, Fragment1.3.0-alpha05
e AppCompat1.3.0-alpha01
para preenchê-lo corretamente. Uma extensão KotlinfindViewModelStoreOwner()
foi adicionada alifecycle-viewmodel-ktx
(aosp/1295522, link em inglês).
Correções de bugs
- Correção de um problema que fazia com que as verificações de Lint
MutableLiveData
lançadas no Lifecycle2.3.0-alpha01
fossem publicadas com o artefatolifecycle-livedata-core-ktx
(b/155323109, link em inglês).
Versão 2.3.0-alpha02
29 de abril de 2020
Lançamento do androidx.lifecycle:lifecycle-*:2.3.0-alpha02
. A versão 2.3.0-alpha02 contém essas confirmações (link em inglês).
Mudanças na API
SavedStateViewModelFactory
agora permite que você transmita umApplication
nulo ao construtor para históricos de consulta melhores em que um deles não está disponível rapidamente e o suporte paraAndroidViewModel
não é necessário (aosp/1285740, link em inglês).
Correções de bugs
- Melhor desempenho de inicialização a frio, evitando falhas na verificação de classe na API 28 e em dispositivos anteriores (aosp/1282118, link em inglês).
Versão 2.3.0-alpha01
4 de março de 2020
Lançamento do androidx.lifecycle:lifecycle-*:2.3.0-alpha01
. A versão 2.3.0-alpha01 contém essas confirmações (link em inglês).
Novos recursos
- Uma nova API
ViewTreeLifecycleOwner.get(View)
permite que você recupere oLifecycleOwner
cheio diante de uma instânciaView
. É necessário fazer upgrade para Atividade1.2.0-alpha01
e Fragmento1.3.0-alpha01
para preenchê-lo corretamente. Uma extensãofindViewTreeLifecycleOwner
do Kotlin está disponível emlifecycle-runtime-ktx
(aosp/1182361, aosp/1182956). - Adição de uma nova verificação do Lint que avisa quando você define um valor
null
em umMutableLiveData
definido no Kotlin como não nulo. Isso está disponível ao usar os artefatoslivedata-core-ktx
oulivedata-ktx
(aosp/1154723, aosp/1159092). - Um novo artefato
lifecycle-runtime-testing
está disponível e fornece umTestLifecycleOwner
que implementaLifecycleOwner
e fornece umLifecycle
seguro e mutável da linha de execução (aosp/1242438, link em inglês).
Correções de bugs
- O artefato
lifecycle-runtime
agora tem um nome de pacote exclusivo (aosp/1187196).
Versão 2.2.0
ViewModel-Savedstate Versão 2.2.0
5 de fevereiro de 2020
Lançamento do androidx.lifecycle:lifecycle-viewmodel-savedstate:2.2.0
. A versão 2.2.0 contém essas confirmações (link em inglês).
O Lifecycle ViewModel SavedState agora compartilha a mesma versão de outros artefatos do Lifecycle. O comportamento de 2.2.0
é idêntico ao comportamento de 1.0.0
.
Versão 2.2.0
22 de janeiro de 2020
androidx.lifecycle:lifecycle-*:2.2.0
é lançado. A versão 2.2.0 contém essas confirmações (link em inglês).
Mudanças importantes desde a versão 2.1.0
- Integração com corrotina do Lifecycle: o novo artefato
lifecycle-runtime-ktx
acrescenta integração entre as corrotinas do Lifecycle e do Kotlin. Olifecycle-livedata-ktx
também foi expandido para aproveitar as corrotinas. Consulte Usar corrotinas do Kotlin com componentes de arquitetura para saber mais. - Suspensão de uso de
ViewModelProviders.of()
:ViewModelProviders.of()
se tornou obsoleto. Você pode passar umFragment
ouFragmentActivity
para o novoViewModelProvider(ViewModelStoreOwner)
para conseguir a mesma funcionalidade ao usar o Fragment1.2.0
. - Suspensão de uso do artefato
lifecycle-extensions
: com a suspensão do uso doViewModelProviders.of()
descrita acima, esta versão marca a suspensão do uso da última API emlifecycle-extensions
, e esse artefato agora será considerado completamente obsoleto. É altamente recomendável depender dos artefatos específicos necessários do Lifecycle (comolifecycle-service
, se você estiver usandoLifecycleService
, elifecycle-process
, se você estiver usandoProcessLifecycleOwner
) em vez delifecycle-extensions
, já que não haverá uma futura versão2.3.0
delifecycle-extensions
. - Processador de anotações incremental do Gradle: o processador de anotações do Lifecycle é incremental por padrão.
Se o app tiver sido programado com a linguagem de programação Java 8, você poderá usar
DefautLifecycleObserver
. Se ele tiver sido programado com a linguagem de programação Java 7, você poderá usarLifecycleEventObserver
.
Versão 2.2.0-rc03
4 de dezembro de 2019
androidx.lifecycle:lifecycle-*:2.2.0-rc03
é lançado. A versão 2.2.0-rc03 contém essas confirmações (link em inglês).
Correções de bugs
- Correção de uma falha que ocorria quando um
ViewModel
simulado era armazenado emViewModelStore
e consultado com a fábrica padrão. - Correção de um uso de
Dispatchers.Main.immediate
emlaunchWhenCreated
e métodos semelhantes para serem chamados de maneira síncrona durante o evento de ciclo de vida correspondente (aosp/1156203, link em inglês).
Contribuições externas
- Agradecemos a Anders Järleberg por contribuir com a correção (aosp/1156203, link em inglês).
- Agradecemos a Vsevolod Tolstopyatov, da Jetbrains, por revisar uma implementação de execução inline.
Mudanças na dependência
- As extensões do Lifecycle agora dependem do Fragment
1.2.0-rc03
.
Versão 2.2.0-rc02
7 de novembro de 2019
androidx.lifecycle:lifecycle-*:2.2.0-rc02
é lançado. A versão 2.2.0-rc02 contém essas confirmações.
Correções de bugs
- Corrigido um bug na configuração do Proguard da biblioteca que afetava os dispositivos com a API 28+ se a API de destino fosse anterior a 29 (b/142778206)
Versão 2.2.0-rc01
23 de outubro de 2019
Lançamento do androidx.lifecycle:lifecycle-*:2.2.0-rc01
. A versão 2.2.0-rc01 contém essas confirmações (link em inglês).
Correções de bugs
- Corrigido um problema em que
launchWhenCreated
e métodos relacionados executavam um frame mais tarde do que o método de ciclo de vida associado, devido ao uso deDispatchers.Main
em vez deDispatchers.Main.immediate
(aosp/1145596, link em inglês)
Contribuições externas
- Agradecemos a Nicklas Ansman por contribuir com a correção (aosp/1145596, link em inglês)
Versão 2.2.0-beta01
9 de outubro de 2019
androidx.lifecycle:lifecycle-*:2.2.0-beta01
é lançado. A versão 2.2.0-beta01 contém essas confirmações (link em inglês).
Correções de bugs
- Corrigida uma regressão introduzida no Lifecycle 2.2.0-alpha05 na ordenação de
ProcessLifecycleOwner
e na movimentação deLifecycleOwner
da atividade para iniciação e retomada em dispositivos Android 10 (aosp/1128132). - Corrigida uma regressão introduzida no Lifecycle
2.2.0-alpha05
que causava umaNullPointerException
ao usar a versão2.0.0
ou2.1.0
delifecycle-process
(b/141536990, link em inglês)
Version 2.2.0-alpha05
18 de setembro de 2019
Lançamento do androidx.lifecycle:lifecycle-*:2.2.0-alpha05
. A versão 2.2.0-alpha05 contém essas confirmações (link em inglês).
Correções de bugs
- Corrigida uma disputa na corrotina do builder Livedata. b/80346526.
Versão 2.2.0-alpha04
5 de setembro de 2019
androidx.lifecycle:lifecycle-*:2.2.0-alpha04
é lançado. As confirmações incluídas nessa versão podem ser encontradas aqui (link em inglês).
Novos recursos
lifecycleScope
,whenCreated
,whenStarted
,whenResumed
,viewModelScope
e a implementação deliveData
agora usamDispatchers.Main.immediate
em vez deDispatchers.Main
(b/139740492, link em inglês)
Contribuições externas
- Agradecemos a Nicklas Ansman por contribuir com a migração para
Dispatchers.Main.immediate
(aosp/1106073, link em inglês)
Versão 2.2.0-alpha03
7 de agosto de 2019
androidx.lifecycle:lifecycle-*:2.2.0-alpha03
é lançado. As confirmações incluídas nessa versão podem ser encontradas aqui (link em inglês).
Novos recursos
- Agora, as implementações de
ViewModelStoreOwner
têm a opção de implementarHasDefaultViewModelProviderFactory
para oferecer umViewModelProvider.Factory
padrão. Isso foi feito para Activity1.1.0-alpha02
, Fragment1.2.0-alpha02
e Navigation2.2.0-alpha01
. (aosp/1092370, b/135716331, link em inglês)
Mudanças na API
- O uso de
ViewModelProviders.of()
foi suspenso. Você pode transmitir umFragment
ouFragmentActivity
ao novo construtorViewModelProvider(ViewModelStoreOwner)
para conseguir a mesma funcionalidade. (aosp/1009889, link em inglês)
Versão 2.2.0-alpha02
2 de julho de 2019
androidx.lifecycle:*:2.2.0-alpha02
é lançado. As confirmações incluídas nessa versão podem ser encontradas aqui (link em inglês).
Mudanças na API
LiveDataScope.initialValue
substituído porLiveDataScope.latestValue
, que rastreará o valor atual emitido do blocoliveData
.- Adicionada uma nova sobrecarga ao builder
liveData
, que recebe o parâmetrotimeout
como tipoDuration
.
Versão 2.2.0-alpha01
7 de maio de 2019
androidx.lifecycle:*:2.2.0-alpha01
é lançado. As confirmações incluídas nessa versão podem ser encontradas aqui (link em inglês).
Novos recursos
- Essa versão adiciona novos recursos para compatibilidade com corrotinas do Kotlin para Lifecycle e LiveData. Documentação detalhada sobre eles pode ser encontrada aqui (link em inglês).
ViewModel-SavedState Versão 1.0.0
Versão 1.0.0
22 de janeiro de 2020
Lançamento do androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0
. A versão 1.0.0 contém essas confirmações (link em inglês).
Recursos importantes em 1.0.0
- Adição da nova classe SavedStateHandle. Ela permite que as classes
ViewModel
acessem e contribuam com o estado salvo. Esse objeto pode ser recebido no construtor da classeViewModel
, e as fábricas fornecidas por padrão pelo Fragments e AppCompatActivity injetarãoSavedStateHandle
automaticamente. - Adição de AbstractSavedStateViewModelFactory. Ela permite que você crie fábricas personalizadas para seu
ViewModel
e forneça acesso aoSavedStateHandle
.
ViewModel-Savedstate Versão 1.0.0-rc03
4 de dezembro de 2019
Lançamento do androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0-rc03
. A versão 1.0.0-rc03 contém essas confirmações (link em inglês).
Mudanças na dependência
- O Lifecycle ViewModel SavedState agora depende do Lifecycle
2.2.0-rc03
.
Viewmodel-Savedstate Versão 1.0.0-rc02
7 de novembro de 2019
Lançamento do androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0-rc02
. A versão 1.0.0-rc02 contém essas confirmações (link em inglês).
Alterações na dependência
- Agora depende do lifecycle
2.2.0-rc02
.
ViewModel-SavedState Versão 1.0.0-rc01
23 de outubro de 2019
Lançamento do androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0-rc01
sem alterações do 1.0.0-beta01
. A versão 1.0.0-rc01 contém essas confirmações (link em inglês).
ViewModel-Savedstate Versão 1.0.0-beta01
9 de outubro de 2019
Lançamento do androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0-beta01
. A versão 1.0.0-beta01 contém essas confirmações (link em inglês).
Correções de bugs
- Correção de problema ao acessar um ViewModel de SavedState pela primeira vez em
Activity.onActivityResult()
que resultava em umaIllegalStateException
(b/139093676) - Correção de uma
IllegalStateException
ao usarAbstractSavedStateViewModelFactory
(b/141225984, link em inglês)
ViewModel-SavedState Versão 1.0.0-alpha05
18 de setembro de 2019
Lançamento do androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0-alpha05
. A versão 1.0.0-alpha05 contém essas confirmações (link em inglês).
Mudanças na API
SavedStateViewModelFactory
não estende maisAbstractSavedStateViewModelFactory
, eSavedStateHandle
é criado apenas para ViewModels que o solicitaram (aosp/1113593)
ViewModel-SavedState Versão 1.0.0-alpha03
7 de agosto de 2019
androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0-alpha03
é lançado. As confirmações incluídas nessa versão podem ser encontradas aqui (link em inglês).
Mudanças importantes
lifecycle-viewmodel-savedstate
não depende mais dofragment
, e os construtoresSavedStateViewModelFactory(Fragment)
eSavedStateViewModelFactory(FragmentActivity)
relacionados foram removidos. Em vez disso,SavedStateViewModelFactory
agora é a fábrica padrão para Activity1.1.0-alpha02
, Fragment1.2.0-alpha02
e Navigation2.2.0-alpha01
. (b/135716331, link em inglês)
ViewModel-SavedState Versão 1.0.0-alpha02
2 de julho de 2019
androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0-alpha02
é lançado. As confirmações incluídas nessa versão podem ser encontradas aqui (link em inglês).
Novos recursos
- Adição da sobrecarga
SavedStateHandle.getLiveData()
, que aceita um valor padrão.
Mudanças na API
SavedStateVMFactory
foi renomeado comoSavedStateViewModelFactory
.AbstractSavedStateVMFactory
foi renomeado comoAbstractSavedStateViewModelFactory
.
ViewModel-Savedstate Versão 1.0.0-alpha01
13 de março de 2019
Lançamento do androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0-alpha01
. O registro de confirmação completo dessa versão inicial pode ser encontrado aqui (link em inglês).
Novos recursos
- Agora
ViewModels
pode contribuir para o savedstate. Para isso, use a recém-introduzida fábrica do ViewModel,SavedStateVMFactory
. Além disso, o ViewModel precisa ter um construtor que receba o objetoSavedStateHandle
como parâmetro.
Versão 2.1.0
Mudanças importantes desde a versão 2.0.0
- Adicionado
LifecycleEventObserver
para os casos em que um fluxo de eventos do ciclo de vida é necessário. Trata-se de uma API pública, em vez de uma classeGenericLifecycleObserver
oculta. - Adicionadas extensões ktx para os métodos
LiveData.observe
eTransformations.*
. - Adicionado
Transformations.distinctUntilChanged
, que cria um novo objeto LiveData que não emite um valor até que o valorLiveData
de origem tenha sido alterado. - Adicionada compatibilidade com a corrotina em ViewModels, incluindo a propriedade de extensão
ViewModel.viewModelScope
.
Versão 2.1.0
5 de setembro de 2019
androidx.lifecycle:lifecycle-*:2.1.0
é lançado. As confirmações incluídas nessa versão podem ser encontradas aqui (link em inglês).
Versão 2.1.0-rc01
2 de julho de 2019
Lançamento do androidx.lifecycle:*:2.1.0-rc01
sem alterações do androidx.lifecycle:*:2.1.0-beta01
. As confirmações incluídas nessa versão podem ser encontradas aqui (link em inglês).
Versão 2.1.0-beta01
7 de maio de 2019
androidx.lifecycle:*:2.1.0-beta01
é lançado. As confirmações incluídas nessa versão podem ser encontradas aqui (link em inglês).
Novos recursos
- Lifecycles foram atualizados para a versão Beta. As APIs introduzidas em Alfas anteriores, como funções de extensão de
liveData
para transformações e observações, inicialização doViewModel
com delegação de propriedades, entre outras, estão estabilizadas e não vão mudar.
Versão 2.1.0-alpha04
3 de abril de 2019
androidx.lifecycle:*:2.1.0-alpha04
é lançado. As confirmações incluídas nessa versão podem ser encontradas aqui (link em inglês).
Mudanças na API
- Mudança importante: a API subjacente relacionada a
by viewModels()
e aby activityViewModels()
mudou para ser diretamente compatível com umViewModelStore
, e não apenas com umViewModelStoreOwner
(aosp/932932, link em inglês)
Versão 2.1.0-alpha03
13 de março de 2019
androidx.lifecycle:*:2.1.0-alpha03
é lançado. A lista completa de confirmações incluídas nessa versão pode ser encontrada aqui (link em inglês).
Mudanças na API
ViewModelProvider.KeyedFactory
foi removido. A segunda interface, além deViewModelProvider.Factory
, não combinou bem com novos recursos, como delegação de propriedades em Kotlinby viewmodels {}
. (aosp/914133, link em inglês)
Versão 2.1.0-alpha02
30 de janeiro de 2019
Lançamento do androidx.lifecycle 2.1.0-alpha02
.
Mudanças na API
- Agora
LifecycleRegistry
contém um métodosetCurrentState()
que substitui o método obsoletosetState()
(aosp/880715, link em inglês)
Correções de bugs
- Corrigido um problema que fazia com que instâncias
ViewModel
fictícias falhassem quando oViewModelStore
era liberado. b/122273087.
Versão 2.1.0-alpha01
17 de dezembro de 2018
Lançamento do androidx.lifecycle 2.1.0-alpha01
.
Novos recursos
- Adicionado
LifecycleEventObserver
para os casos em que um fluxo de eventos do ciclo de vida é necessário. Trata-se de uma API pública, em vez de uma classeGenericLifecycleObserver
oculta. - Adicionadas extensões ktx para os métodos
LiveData.observe
eTransformations.*
. - Adicionado o método
Transformations.distinctUntilChanged
. Ele cria um novo objetoLiveData
que não emite valores até que o valor LiveData de origem mude. - Adicionada compatibilidade de corrotinas em ViewModels: a propriedade da extensão
ViewModel.viewModelScope
. - Adição de
ViewModelProvider.KeyedFactory
, uma fábrica para ViewModels que recebekey
eClass
no métodocreate
.
Versão 2.0.0
Versão 2.0.0
21 de setembro de 2018
A versão 2.0.0
foi lançada com uma correção de bug de 2.0.0-rc01
em ViewModel.
Correções de bugs
- Correção de uma regra Proguard do ViewModel que removia incorretamente os construtores. b/112230489
Versão 2.0.0-beta01
2 de julho de 2018
Correções de bugs
- Correção da regra Proguard do LifecycleObserver para manter apenas implementações, e não subinterfaces. b/71389427
- Corrigidas regras Proguard do ViewModel para permitir ofuscação e encolhimento.
Versões anteriores ao AndroidX
Para as seguintes versões do Lifecycle anteriores ao AndroidX, inclua estas dependências:
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"
}
Versão 1.1.1
21 de março de 2018
Só uma pequena mudança: android.arch.core.util.Function
foi movida de arch:runtime
para arch:common
. Isso possibilita o uso sem a dependência de tempo de execução, por exemplo, em paging:common
abaixo.
lifecycle:common
é uma dependência de lifecycle:runtime
. Por esse motivo, essa mudança não afeta lifecycle:runtime
diretamente, mas apenas os módulos que dependem diretamente de lifecycle:common
, como o Paging.
Versão 1.1.0
22 de janeiro de 2018
Mudanças no empacotamento
Novas dependências muito menores agora estão disponíveis:
android.arch.lifecycle:livedata:1.1.0
android.arch.lifecycle:viewmodel:1.1.0
Mudanças na API
- Os
LifecycleActivity
eLifecycleFragment
obsoletos foram removidos. UseFragmentActivity
,AppCompatActivity
ou ofereça compatibilidade comFragment
. - Adicionadas anotações
@NonNull
aViewModelProviders
eViewModelStores
- O uso do construtor
ViewModelProviders
foi suspenso. Use os métodos estáticos dele diretamente. - O uso de
ViewModelProviders.DefaultFactory
foi suspenso. UseViewModelProvider.AndroidViewModelFactory
- Adição do método
ViewModelProvider.AndroidViewModelFactory.getInstance(Application)
estático para recuperar umaFactory
estática adequada para criar instânciasViewModel
eAndroidViewModel
.