Savedstate

Programe componentes conectáveis que salvam o estado da interface quando um processo é encerrado e o restauram quando é reiniciado.
Atualização mais recente Versão estável Versão candidata a lançamento Versão Beta Versão Alfa
22 de março de 2023 1.2.1 - - -

Declarar dependências

Para adicionar uma dependência ao SavedState, adicione 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 ao arquivo build.gradle do seu app ou módulo:

Groovy

dependencies {
    // Java language implementation
    implementation "androidx.savedstate:savedstate:1.2.1"

    // Kotlin
    implementation "androidx.savedstate:savedstate-ktx:1.2.1"
}

Kotlin

dependencies {
    // Java language implementation
    implementation("androidx.savedstate:savedstate:1.2.1")

    // Kotlin
    implementation("androidx.savedstate:savedstate-ktx:1.2.1")
}

Para mais informações sobre dependências, consulte Adicionar dependências de build.

Feedback

Seu feedback ajuda a melhorar o Jetpack. Avise se você descobrir novos problemas ou tiver ideias para melhorar esta biblioteca. Consulte os problemas conhecidos nesta biblioteca antes de criar um novo. Adicione seu voto a um problema clicando no botão de estrela.

Criar novo problema

Consulte a documentação do Issue Tracker para saber mais.

Versão 1.2.1

Versão 1.2.1

22 de março de 2023

Lançamento de androidx.savedstate:savedstate:1.2.1 e androidx.savedstate:savedstate-ktx:1.2.1. A versão 1.2.1 contém estas confirmações.

Atualizações de dependência

Versão 1.2.0

Versão 1.2.0

29 de junho de 2022

Lançamento de androidx.savedstate:savedstate:1.2.0 e androidx.savedstate:savedstate-ktx:1.2.0. A versão 1.2.0 contém estas confirmações.

Mudanças importantes desde a versão 1.1.0

  • A classe SavedStateRegistryController agora permite a anexação antecipada do SavedStateRegistry pelo método performAttach().
  • Agora você pode extrair um SavedStateProvider registrado anteriormente de um SavedStateRegistry usando getSavedStateProvider().
  • A biblioteca SavedState foi reescrita em Kotlin.
    • Para SavedStateRegistryOwner, essa é uma mudança incompatível com a fonte das classes escritas em Kotlin. Agora é necessário mudar a propriedade savedStateRegistry em vez de implementar a função getSavedStateRegistry() anterior.
    • Para ViewTreeSavedStateRegistryOwner, essa é uma mudança incompatível com a fonte das classes escritas em Kotlin. Agora é necessário importar e usar diretamente os métodos de extensão Kotlin na View de androidx.savedstate.setViewTreeSavedStateRegistryOwner e androidx.savedstate.findViewTreeSavedStateRegistryOwner para definir e encontrar um proprietário configurado anteriormente. Isso substitui a API savedstate-ktx de findViewTreeSavedStateRegistryOwner.

Mudanças de comportamento

  • A classe SavedStateRegistry não salva mais um pacote vazio se não houver um estado a ser salvo.

Versão 1.2.0-rc01

11 de maio de 2022

Lançamento de androidx.savedstate:savedstate:1.2.0-rc01 e androidx.savedstate:savedstate-ktx:1.2.0-rc01. A versão 1.2.0-rc01 contém estas confirmações.

Mudanças na documentação

  • Os Kdocs de SavedStateRegistryOwner foram atualizados para esclarecer as responsabilidades e o contrato que o proprietário tem sobre como implementar a interface ou quando chamar os métodos na classe SavedStateRegistryController (Iefc95, b/228887344).

Versão 1.2.0-beta01

20 de abril de 2022

Lançamento de androidx.savedstate:savedstate:1.2.0-beta01 e androidx.savedstate:savedstate-ktx:1.2.0-beta01. A versão 1.2.0-beta01 contém estas confirmações.

Mudanças na API

  • As classes SavedStateRegistry e ViewTreeSavedStateRegistryOwner foram reescritas em Kotlin. Para ViewTreeSavedStateRegistryOwner, essa é uma mudança incompatível com a fonte das classes escritas em Kotlin. Agora é necessário importar e usar diretamente os métodos de extensão Kotlin na View de androidx.savedstate.setViewTreeSavedStateRegistryOwner e androidx.savedstate.findViewTreeSavedStateRegistryOwner para definir e encontrar um proprietário configurado anteriormente. Isso substitui a API savedstate-ktx de findViewTreeSavedStateRegistryOwner. Ela é compatível com binários e mantém a compatibilidade com fontes nas implementações escritas na linguagem de programação Java (b/220191285).

Versão 1.2.0-alpha02

6 de abril de 2022

Lançamento de androidx.savedstate:savedstate:1.2.0-alpha02 e androidx.savedstate:savedstate-ktx:1.2.0-alpha02. A versão 1.2.0-alpha02 contém estas confirmações.

Novos recursos

  • Agora você pode extrair um SavedStateProvider registrado anteriormente de um SavedStateRegistry usando getSavedStateProvider() (I7ea47, b/215406268).

Mudanças na API

  • As classes SavedStateRegistryOwner, SavedStateRegistryController e Recreator foram reescritas em Kotlin. Para SavedStateRegistryOwner, essa é uma mudança incompatível com a fonte das classes escritas em Kotlin. Agora é necessário mudar a propriedade savedStateRegistry em vez de implementar a função getSavedStateRegistry() anterior. Ela é compatível com binários e fontes e serve para implementações escritas na linguagem de programação Java (b/220191285).

Versão 1.2.0-alpha01

26 de janeiro de 2022

Lançamento de androidx.savedstate:savedstate:1.2.0-alpha01 e androidx.savedstate:savedstate-ktx:1.2.0-alpha01. A versão 1.2.0-alpha01 contém estas confirmações.

Novos recursos

  • A classe SavedStateRegistryController agora permite a anexação antecipada da SavedStateRegistry via performAttach() (Ice4bf).

Mudanças de comportamento

  • A classe SavedStateRegistry não salva mais um pacote vazio se não houver um estado a ser salvo (aosp/1896865, b/203457956).

Versão 1.1.0

Versão 1.1.0

10 de fevereiro de 2021

Lançamento de androidx.savedstate:savedstate:1.1.0 e androidx.savedstate:savedstate-ktx:1.1.0. A versão 1.1.0 contém estas confirmações.

Principais mudanças desde a versão 1.0.0

  • API ViewTreeSavedStateRegistryOwner: uma nova API ViewTreeSavedStateRegistryOwner.get(View) permite que você recupere o SavedStateRegistry contido de uma instância View. Você precisa fazer upgrade para a Activity 1.2.0, Fragment 1.3.0 e AppCompat 1.3.0-alpha01 ou mais recente para preencher corretamente.
  • Artefato savedstate-ktx: o novo artefato savedstate-ktx foi adicionado com uma extensão Kotlin findViewTreeSavedStateRegistryOwner() para trabalhar com ViewTreeSavedStateRegistryOwner.

Versão 1.1.0-rc01

16 de dezembro de 2020

Lançamento de androidx.savedstate:savedstate:1.1.0-rc01 e androidx.savedstate:savedstate-ktx:1.1.0-rc01, sem mudanças desde a 1.1.0-beta01. A versão 1.1.0-rc01 contém estas confirmações.

Versão 1.1.0-beta01

1º de outubro de 2020

Lançamento de androidx.savedstate:savedstate:1.1.0-beta01 e androidx.savedstate:savedstate-ktx:1.1.0-beta01, sem mudanças desde a 1.1.0-alpha01. A versão 1.1.0-beta01 contém estas confirmações.

Versão 1.1.0-alpha01

20 de maio de 2020

Lançamento de androidx.savedstate:savedstate:1.1.0-alpha01 e androidx.savedstate:savedstate-ktx:1.1.0-alpha01. A versão 1.1.0-alpha01 contém estas confirmações.

Novos recursos

  • Uma nova API ViewTreeSavedStateRegistryOwner.get(View) permite que você extraia o SavedStateRegistry contido de uma instância View. É necessário fazer upgrade para Atividade 1.2.0-alpha05, Fragmento 1.3.0-alpha05 e AppCompat 1.3.0-alpha01 para preencher corretamente. (aosp/1298679).
  • O novo artefato savedstate-ktx foi adicionado com uma extensão Kotlin findViewTreeSavedStateRegistryOwner() para trabalhar com ViewTreeSavedStateRegistryOwner (aosp/1299434, link em inglês).

Versão 1.0.0

Versão 1.0.0

5 de setembro de 2019

Lançamento de androidx.savedstate:savedstate:1.0.0. As confirmações incluídas nesta versão podem ser conferidas neste link.

Principais recursos do SavedState 1.0.0

androidx.savedstate se tornou uma versão estável. Este é um conjunto de APIs que permite aos desenvolvedores conectar componentes de plug-in no processo restore / saveInstanceState. O ponto de entrada principal da API é SavedStateRegistry, que traz uma maneira de recuperar estados salvos anteriormente usando consumeRestoredStateForKey e registrar um callback para registerSavedStateProvider para disponibilizar um estado salvo quando o sistema o solicitar.

Versão 1.0.0-rc01

2 de julho de 2019

Lançamento de androidx.savedstate:savedstate:1.0.0-rc01. As confirmações incluídas nessa versão podem ser encontradas aqui (link em inglês).

Correções de bugs

  • Correção de uma regra incorreta do Proguard (b/132655499)

Versão 1.0.0-beta01

7 de maio de 2019

Lançamento de androidx.savedstate:savedstate:1.0.0-beta01. As confirmações incluídas nessa versão podem ser encontradas aqui (link em inglês).

Versão 1.0.0-alpha02

13 de março de 2019

Lançamento de androidx.savedstate:savedstate:1.0.0-alpha02. androidx.savedstate:savedstate combina androidx.savedstate:savedstate-bundle e androidx.savedstate:savedstate-common em um único artefato, porque foi decidido simplificar a infraestrutura do savedstate e remover os genéricos do SavedStateRegistry. Portanto, não é necessário ter módulos diferentes.

A lista completa das confirmações incluídas nesta versão pode ser conferida neste link.

Novos recursos

  • Adição de SavedStateRegistry.runOnNextRecreaction(Class<? extends AutoRecreated> clazz ). A classe determinada será instanciada e o método AutoRecreated.onRecreated será executado quando o componente proprietário for reiniciado.

Mudanças na API

  • Genéricos removidos de SavedStateRegistry<T>.
  • AbstractSavedStateRegistry e BundlableSavedStateRegistry foram removidos. Use SavedStateRegistry.
  • BundleSavedStateRegistryOwner foi renomeado como SavedStateRegistryOwner.

Versão 1.0.0-alpha01

17 de dezembro de 2018

Essa é a primeira versão do SavedState.

Novos recursos

androidx.savedstate é um novo conjunto de APIs alfa que permite que os desenvolvedores façam o plug-in de componentes para o processo restore / saveInstanceState. O ponto de entrada principal da API é SavedStateRegistry<T>, que traz uma maneira de recuperar o savedstate anterior via consumeRestoredStateForKey e registrar um callback para registerSavedStateProvider para disponibilizar um savedstate quando o sistema o solicitar.