Entendendo e Utilizando o ConfigChanges no Android
(4877)
CategoriasAndroid, Design, Protótipo
AutorVinícius Thiengo
Vídeo aulas186
Tempo15 horas
ExercíciosSim
CertificadoSim
CategoriaDesenvolvimento Web
Autor(es)Robert C. Martin
EditoraAlta Books
Edição1ª
Ano2023
Páginas416
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:
- Kotlin Android, Entendendo e Primeiro Projeto;
- Android Studio: Instalação, Configuração e Otimização;
- Android Mobile-Commerce, Apresentação e Protótipo do Projeto.
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”?
Comentários Facebook