Entendendo e Utilizando o ConfigChanges no Android

Receba em primeira mão, e com prioridade, os conteúdos Android exclusivos do Blog. Você receberá um email de confirmação. Somente depois de confirma-lo é que poderei lhe enviar os conteúdos exclusivos.

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

Entendendo e Utilizando o ConfigChanges no Android

Vinícius Thiengo
(3282)
Go-ahead
"Quanto tempo você deve tentar? Até chegar lá."
Jim Rohn
Kotlin Android
Capa do livro Desenvolvedor Kotlin Android - Bibliotecas para o dia a dia
TítuloDesenvolvedor Kotlin Android - Bibliotecas para o dia a dia
CategoriasAndroid, Kotlin
AutorVinícius Thiengo
Edição
Capítulos19
Páginas1035
Acessar Livro
Treinamento Oficial
Android: Prototipagem Profissional de Aplicativos
CursoAndroid: Prototipagem Profissional de Aplicativos
CategoriaAndroid
InstrutorVinícius Thiengo
NívelTodos os níveis
Vídeo aulas186
PlataformaUdemy
Acessar Curso
Receitas Android
Capa do livro Receitas Para Desenvolvedores Android
TítuloReceitas Para Desenvolvedores Android
CategoriaDesenvolvimento Android
AutorVinícius Thiengo
Edição
Ano2017
Capítulos20
Páginas936
Acessar Livro
Código Limpo
Capa do livro Refatorando Para Programas Limpos
TítuloRefatorando Para Programas Limpos
CategoriaEngenharia de Software
AutorVinícius Thiengo
Edição
Capítulos46
Páginas599
Acessar Livro
Quer aprender a programar para Android? Acesse abaixo o curso gratuito no Blog.
Conteúdo Exclusivo
Receba em primeira mão, e com prioridade, os conteúdos Android exclusivos do Blog.
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.

Fontes

onConfigurationChanged - documentação oficial Android

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

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

Receba em primeira mão, e com prioridade, os conteúdos Android exclusivos do Blog.
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...