Entendendo a Thread Principal de Um App Android
(11858) (12)
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?
Main thread, ou Thread principal, ou Thread de interface, ou ainda Thread UI. Aqui vamos utilizar o termo "Thread principal" para um dos temas mais importantes para aqueles que já estão ou vão entrar no mundo de desenvolvimento de aplicativos Android.
Se você já trabalhou com linguagens de programação que têm boas APIs para processamento paralelo, então certamente você sabe o que é uma thread. O Java e o Kotlin são linguagens que têm excelentes APIs para execuções em concorrência.
Em resumo, uma thread, em computação, é:
Uma forma de um processo dividir a si mesmo em duas ou mais tarefas que podem ser executadas concorrencialmente.
No Android, principalmente devido às duas principais linguagens oficiais, Java e Kotlin, serem linguagens JVM, nós podemos "usar e abusar" de threads.
Porém é de extrema importância conhecer a Thread principal, isso, pois é nela que é permitido, por exemplo, a atualização de componentes visuais, componentes que estão em tela.
Note que, saber o que é e como utilizar a Thread principal no Android é tão importante quanto conhecer por completo as APIs Activity e Intent, por exemplo.
A seguir vou apresentar um rápido roteiro para tentar internalizar em sua mente a importância da Thread principal:
Em um aplicativo Android de cálculos matemáticos complexos foi exigido de você que uma determinada função fosse invocada em uma thread secundária (também conhecida como thread de background), utilizando a API Thread (que implementa de Runnable - como o "mundo" deseja), pois o processamento dessa função é lento e assim haveria o risco de travar, por alguns segundos, a interface do usuário.
O resultado dessa execução deverá ser impresso em um TextView.
Você, como excelente programador que é, fez tudo como solicitado pelo engenheiro de software do projeto. Mas para apresentar o resultado, como a função de cálculo já estava dentro da atividade, você simplesmente colocou no final dessa função, ainda dentro da execução de Thread.run(), a linha de código que acertava o resultado dentro do TextView, como a seguir: tvResult.setText( "Resultado cálculo: " + result ).
Adivinha? Exception! 😰
Por que?
Porque no Android é somente na Thread principal que componentes visuais podem ser atualizados. Alias, processamentos que podem travar a tela, mesmo que por poucos segundos, devem ocorrer fora da Thread principal, caso contrário, exceção novamente.
Na vídeo aula acima temos um exemplo mais completo e passo a passo para você entender em definitivo o que é e como utilizar, acessar, a Thread principal no Android.
Preste atenção na classe Handler, na conexão com a Internet e na permissão de conexão com a Internet. Esses são pontos importantes para o total entendimento, em aula, do funcionamento da Thread principal.
Desde já deixo claro que o modelo de conexão com a Internet utilizado no vídeo acima não é nem mesmo de perto recomendado para ser utilizado no desenvolvimento Android. Adotei esse em projeto para facilitar o entendimento da Thread principal.
Para conexões remotas, utilize APIs específicas, que fazem todo o trabalho pesado para o desenvolvedor do aplicativo.
Assim que você terminar está aula e entender por completo o que é e como utilizar a Thread principal no Android, eu fortemente recomendo que você parta para o estudo da API runOnUiThread(). Acredite, isso será um baita complemento à vídeo aula acima.
Antes de finalizar, vou deixar abaixo alguns links de outros conteúdos aqui do Blog, também com vídeos, que lhe colocarão em dia com o que há de novo no mundo do desenvolvimento 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 apps Android, ou evoluir nesta área, também com o conteúdo gratuito do Blog, então não deixe de acessar a lista de estudos 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, em primeira mão, os conteúdos Android exclusivos liberados semanalmente aqui.
Se inscreva também no canal do Blog no YouTube para acompanhar as últimas novidades disponibilizadas em vídeo.
Surgindo dúvidas ou dicas, pode colocar 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 Thread Principal ainda estar atual e ser de grande importância 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
Visão geral dos processos e threads
Communicate with the UI thread
Better performance through threading
Comentários Facebook