Logo Passei Direto

A maior rede de estudos do Brasil

Grátis
46 pág.
aula 5

Pré-visualização | Página 1 de 6

15/03/2022 18:34 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 1/46
 
 
 
 
 
 
 
 
 
PROGRAMAÇÃO IV
AULA 5
 
 
 
 
 
 
 
 
 
 
 
 
Prof. Ricardo Rodrigues Lecheta
15/03/2022 18:34 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 2/46
CONVERSA INICIAL
Olá, seja bem-vindo a mais uma aula!
Nós já aprendemos como criar layouts em XML e como tratar os eventos nas telas. A estrutura
básica de um aplicativo já estudamos, e nesta aula vamos aprender mais detalhes sobre a classe
Activity.
Nos aplicativos Android, tudo gira em torno de uma activity. Ela representa uma tela do
aplicativo, sendo responsável pelo layout e lógica. Nesta aula, vamos estudar o ciclo de vida de uma
activity, que é um dos assuntos mais importantes para que você seja um desenvolvedor Android de
sucesso. Também vamos estudar como passar parâmetros de uma tela para outra, e detalhes sobre a
classe Intent, que é uma das mais importantes no Android, sendo usada desde para abrir uma tela do
aplicativo até para chamar outros aplicativos como o browser, Google Maps, câmera etc.
TEMA 1 – CICLO DE VIDA DA ACTIVITY
Chegou o momento de entender um dos assuntos mais importantes sobre uma activity, que é o
seu ciclo de vida. Falando com um português bem claro, o ciclo de vida consiste em um conjunto de
métodos da classe Activity que é chamado em determinados momentos e representam o estado
atual da activity, por exemplo, se a tela está visível ou parada em segundo plano (background).
Um dos métodos do ciclo de vida nós já estudamos, que é o onCreate(bundle), chamado uma
única vez ao criar a activity e responsável por fazer a inicialização do layout e algumas configurações.
Outro método é o onDestroy(), que é chamado sempre que a tela é fechada, algo que acontece
quando o usuário clica no botão voltar ou se o método finish() é chamado no código. Em ambos os
casos, a activity é eliminada de memória, e nesse momento, podemos limpar os recursos e objetos
utilizados, caso seja necessário.
Uma forma simples de entender o ciclo de vida é com um exemplo prático de uso de GPS no
aplicativo. Imagine que o aplicativo precisa obter a localização do usuário sempre que ele entra em
15/03/2022 18:34 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 3/46
uma determinada tela e depois mostrar um mapa com esta localização. Porém, sabemos que ao
chamar as funções de GPS, existe um aumento significativo no consumo de bateria. Então imagine
que o aplicativo está mostrando um mapa com a localização do usuário, mas depois disso, o usuário
clica no botão Home para voltar à tela inicial para abrir outro aplicativo. Neste momento, a activity do
mapa terá seus métodos onPause() e onStop() chamados, pois a activity foi parada e agora está em
segundo plano (background). Esses métodos onPause() ou onStop() podem ser utilizados para
desligar o monitoramento do GPS e economizar recursos e bateria do celular.
Seguindo o raciocínio, quando o usuário voltar ao aplicativo e mostrar novamente aquele mapa
com a localização, o método onResume() será chamado, o que indica que a tela da activity que
possui o mapa está novamente visível. Neste momento, podemos ligar novamente o GPS.
Acredito que, se você entendeu o que foi explicado acima, já é 90% do caminho andado, mas,
como o tema é um pouco complexo, vamos estudar o diagrama de fluxo oficial do ciclo de vida de
uma activity e cada método em detalhes.
A figura a seguir demonstra o ciclo de vida completo de uma activity, exibindo os possíveis
estados e a chamada de cada método.
Figura 1 – Activity
15/03/2022 18:34 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 4/46
Depois de ver o diagrama, leia atentamente o significado de cada método do ciclo de vida da
activity.
● onCreate(bundle): o método onCreate(bundle) é chamado uma única vez. O objetivo desse
método é fazer a inicialização necessária para executar o aplicativo. Nele, deve-se criar uma view e
chamar o método setContentView(view) para configurar o layout da tela. O objeto bundle contém os
parâmetros enviados para a activity e pode ser nulo. Vamos estudar sobre passagem de parâmetros
em outra aula.
● onStart(): o método onStart() é chamado quando a activity está ficando visível ao usuário e já
tem uma view. Pode ser chamado depois dos métodos onCreate() ou onRestart(), dependendo do
15/03/2022 18:34 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 5/46
estado do aplicativo. Este método raramente é usado.
● onRestart(): o método onRestart() é chamado quando uma activity foi parada
temporariamente e está sendo iniciada outra vez. Esse método raramente é usado.
● onResume(): o método onResume() é chamado quando a activity está no topo da pilha
“activity stack” e, dessa forma, já está executando como a activity principal e interagindo com o
usuário. Podemos dizer que o método onResume() representa o estado de que a activity está
executando. É importante você entender que, quando o método onResume() executar, o usuário já
estará vendo a tela. Por isso, esse método é frequentemente utilizado para disparar threads que
consultam os dados em web services ou banco de dados para atualizar as informações da tela.
● onPause(): sempre que a tela da activity fechar, o método onPause() será chamado. Isso pode
acontecer se o usuário pressionar o botão Home ou o botão voltar do Android. Ou também pode
acontecer se você receber uma ligação telefônica. Nesse momento, o método onPause() é chamado
para salvar o estado do aplicativo, para que posteriormente, quando a activity voltar a executar, tudo
possa ser recuperado, se necessário, no método onResume().
● onStop(): o método onStop() é chamado logo depois do método onPause() e indica que a
activity está sendo encerrada e não está mais visível ao usuário. Depois de parada, a activity pode ser
reiniciada, se necessário. Caso isso ocorra, o método onRestart() é chamado para reiniciar a activity.
Caso a activity fique muito tempo parada em segundo plano e o sistema operacional do Android
precise limpar os recursos para liberar memória, o método onDestroy() pode ser automaticamente
chamado para remover completamente a activity da pilha.
● onDestroy(): o método onDestroy() literalmente encerra a execução de uma activity. Ele pode
ser chamado automaticamente pelo sistema operacional para liberar recursos ou pode ser chamado
pelo aplicativo com o método finish() da classe Activity. Depois do método onDestroy() ter
executado, a activity será removida completamente da pilha e seu processo no sistema operacional
também será completamente encerrado.
TEMA 2 – EXEMPLO PRÁTICO SOBRE O CICLO DE VIDA
Para demonstrar as chamadas dos métodos do ciclo de vida, vamos criar a classe LogActivity,
que sobrescreve os principais métodos do ciclo de vida e escreve um log com a classe LogCat. Esta
15/03/2022 18:34 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 6/46
activity não precisa de XML, portanto, podemos criá-la como uma classe normal com o wizard > File
> New > Kotlin File/Class, e podemos deixá-la no mesmo pacote onde estão as outras activities.
● LogActivity
15/03/2022 18:34 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 7/46
Importante: sempre que sobrescrever um método da classe Activity, chame o método da
classe-mãe com o super; caso contrário, uma exceção será lançada em tempo de execução.
No início da classe, foi declarada a propriedade className e foi sobrescrito o método get()
para que ela tenha um retorno, facilitando o seu uso no código. A sintaxe é um pouco chatinha, mas
a única coisa que esse código está fazendo é retornar o nome da classe da activity, sem o pacote.
Saiba mais
Para mais detalhes sobre como criar propriedades em Kotlin, segue o link oficial: <https://ko
tlinlang.org/docs/reference/properties.html>.
Essa classe imprime um log quando os métodos do ciclo de vida são chamados. O log é criado
com a tag android, portanto, é necessário criar um filtro para essa tag na janela do LogCat,
Página123456