Entendendo e Utilizando o ConfigChanges no Android

Investir em Você é Barra de Ouro a R$ 2,00. Cadastre-se e receba grátis conteúdos Android sem precedentes! Você receberá um email de confirmação. Somente depois de confirma-lo é que eu poderei lhe enviar os conteúdos semanais exclusivos. Os artigos em PDF são entregues somente para os inscritos na lista.

Email inválido.
Blog /Android /Entendendo e Utilizando o ConfigChanges no Android

Entendendo e Utilizando o ConfigChanges no Android

Vinícius Thiengo
(3831)
Go-ahead
"Seja inegavelmente bom. Nenhum esforço de marketing ou moda de mídia social pode ser um substituto para isso."
Anthony Volodkin
Kotlin Android
Capa do livro Mapas Android de Alta Qualidade - Masterização Android
TítuloMapas Android de Alta Qualidade - Masterização Android
CategoriasAndroid, Kotlin, Masterização, Especialização
AutorVinícius Thiengo
Edição
Ano2020
Capítulos11
Páginas166
Acessar Livro
Quer aprender a programar para Android? Acesse abaixo o curso gratuito no Blog.
Conteúdo Exclusivo
Investir em Você é Barra de Ouro a R$ 2,00. Cadastre-se e receba gratuitamente conteúdos Android sem precedentes!
Email inválido

Tudo bem?

No vídeo acima é apresentado um recurso "avançado" no Android e que certamente vai lhe salvar em situações onde, por exemplo, a reconstrução da atividade não é algo desejado. Reconstrução que pode ocorrer com a simples rotação do aparelho Android, mudando a orientação dele.

Este recurso, que na verdade é uma API, exige duas configurações em projeto:

  • android:configChanges: atributo da tag <activity> no AndroidManifest.xml;
  • onConfigurationChanged(): método de atividade que é invocado sempre que a configuração do dispositivo é alterada. A mudança na orientação de tela é um exemplo, como citado anteriormente.

É importante informar que a API ConfigChanges não existe com o propósito de também substituir os métodos onSaveInstanceState() e onRetainNonConfigurationInstance() que fazem parte do ciclo de vida de uma atividade e que nos auxiliam na persistência de pequenos objetos em memória.

Sem rodeios, indo direto ao ponto, a ConfigChanges é a nossa "carta na manga" para situações em que somente os métodos onSaveInstanceState() e onRetainNonConfigurationInstance() não são o suficiente para a persistência e permanência do estado da tela, ou seja, do estado da interface gráfica de nosso aplicativo em execução.

É bem provável ao programador Android achar a API ConfigChanges "uma beleza", principalmente quando se tratando de aplicativos que fazem o uso intensivo de listas de dados que foram carregados de persistências remotas ou o uso intenso de WebViews.

Tenha cautela quanto ao uso desta API, ConfigChanges. O uso dela, pode acreditar, é muito comum como uma espécie de: paliativo enquanto não há tempo, ou uma solução, melhor disponível para o que foi solicitado em projeto.

De forma alguma pense em utilizar a API ConfigChanges como uma espécie de otimização do seu projeto Android, pois quando você tira a responsabilidade do build do sistema Android, que é o que ocorre quando você passa a utilizar a ConfigChanges, certos objetos terão de ser mantidos pelo seu algoritmo, ou seja, você deverá construir esses scripts na "unha" para manter esses "certos objetos".

Dependendo da complexidade do projeto, ainda será necessário escrever códigos que mantenham todo o estado da interface gráfica do aplicativo.

Thiengo, então é melhor nunca utilizar está API, certo?

Não, não é isso. A ConfigChanges API é uma excepcional API, deve sim ser utilizada em momentos oportunos, mas não deve ser escolhida como uma espécie de solução definitiva a não ser que isso tenha sido bem definido em projeto e o aplicativo tenha sido testado massivamente em diferentes versões do Android, alias, todas as versões atendidas pelo app.

Como melhor definição para o uso da API em estudo, se resguarde a:

A ConfigChanges API será a sua melhor "carta na manga" em situações onde é preciso, em pouco tempo, resolver o problema de perda de eficiência em caso de reconstrução de atividades.

Como pensamento final: desconfie de qualquer API que esta permitindo que você realize em poucas linhas de código todo um trabalho que você sabe ser bem complexo. Não que isto não seja possível, é sim possível, veja o que a Picasso API faz para nós desenvolvedores Android. Mas desconfiar e acessar as issues da API no GitHub é muito importante para saber se ela é "isso tudo" mesmo.

Antes de fechar o artigo, vou deixar alguns links de outros conteúdos aqui do Blog, conteúdos com vídeos, que lhe colocarão em dia com o que há de novo no mundo Android:

E caso você tenha o desejo de aprender a criar aplicativos Android, ou evoluir nesta área, também com o conteúdo gratuito do Blog e canal, então não deixe de acessar a lista de estudos exclusiva em: Estudando Android - Lista de Conteúdos do Blog.

Não esqueça de se inscrever 📫na lista de e-mails do Blog para receber os conteúdos Android em primeira mão.

Se inscreva também no canal do Blog no YouTube para acompanhar as últimas novidades disponibilizadas em formato de vídeo.

Surgindo dúvidas ou dicas, pode enviar abaixo na área de comentários que logo eu lhe retorno.

Obs. : o link para download do projeto apresentado em vídeo se encontra logo abaixo no artigo, na seção "Download".

Abraço.

Eclipse IDE vs Android Studio IDE

Apesar de o conteúdo da vídeo aula acima estar utilizando o Eclipse IDE 😱, tudo que é apresentado, tanto a parte teórica quanto a parte prática, é ainda válido nos dias de hoje com o desenvolvimento Android utilizando o Android Studio 😁.

Ou seja, independente da linguagem oficial (Java, Kotlin, C ou C++), IDE ou framework que você esteja utilizando, o conteúdo acima é ainda muito útil.

AndroidX

Apesar do conteúdo sobre ConfigChanges ainda estar atual e ser de grande utilidade para qualquer nível de desenvolvedor Android.

Apesar disso eu também recomendo, assim que finalizado o projeto em sua própria instalação de IDE, que você o migre para o AndroidX.

Algo que pode ser feito com poucos cliques, como apresentado no tutorial a seguir: Migrar para o AndroidX.

Fontes

onConfigurationChanged - documentação oficial Android

Processamento de alterações no tempo de execução

Why not use always android:configChanges=“keyboardHidden|orientation”?

Investir em Você é Barra de Ouro a R$ 2,00. Cadastre-se e receba grátis conteúdos Android sem precedentes!
Email inválido

Relacionado

Iniciando ActionBar no Android, Trabalhando Com MenuIniciando ActionBar no Android, Trabalhando Com MenuAndroid
Adicionando Tabs na ActionBar AndroidAdicionando Tabs na ActionBar AndroidAndroid
SearchView, Botão Home e Mudança de Título na ActionBar AndroidSearchView, Botão Home e Mudança de Título na ActionBar AndroidAndroid
Criando Suporte ActionBar Android Com ActionBarSherlockCriando Suporte ActionBar Android Com ActionBarSherlockAndroid

Compartilhar

Comentários Facebook

Comentários Blog

Para código / script, coloque entre [code] e [/code] para receber marcação especifica.
Forneça seu nome válido.
Forneça seu email válido.
Forneça o comentário.
Enviando, aguarde...