segunda-feira, 31 de agosto de 2015

Activity


Fala galera! Estou atualizando minhas publicações para melhorar a qualidade do blog. 

Definição:

Uma Activity é uma classe que apresenta uma tela da aplicação e também é responsável por tratar eventos gerados nessa tela, por exemplo, quando o usuário pressiona um botão ou um item de menu é selecionado.
A classe Activity deve implementar obrigatoriamente o método onCreate(bundle) responsável por realizar a inicialização do aplicativo(se for a Activity princilal) ou outra Activity. Cada Activity deve ser declarada no arquivo AndroidManifest.xml como mostrado a seguir:




A Activity pode ser declarada na forma que está na imagem, definida como principal (a que inicia o app) ou como descrito abaixo:

<activity android:name=”.MinhaClasseActivity”/>

Empilhamento de Activities:

Quando a Activity atual chama outra a nova Activity é colocada no topo da pilha, a Activity anterior permanece na pilha mas é interrompida. Quando uma Activity para, o OS mantém o estado atual IU(Interface de Usuário), ao pressionar o botão voltar, a activity atual é retirada do topo da pilha (destruída) e a atividade anterior retorna (o estado da IU é restaurado). Activities na pilha nunca são reorganizadas apenas entram e saem da pilha.



Se o usuário continua pressionando voltar, cada activity na pilha é retirada mostrando a anterior até o usuário retornar à tela inicial.

Ciclo de Vida:


Uma Activity pode existir em trẽs estados:

  • Em Execução: a activity está em primeiro plano (topo da pilha(activity stack)) e tem o foco do usuário.

  • Pausada: A Activity está visível, mas outra activity está no topo da pilha e tem o foco, ou seja outra activity está visível acima desta. Uma activity pausada está totalmente ativa, mas pode ser elimidada pelo sistema em situações de memória crítica.

  • Parada: A activity passa para “segundo plano”. Uma activity ainda está ativa no entando ela não fica mais visível para o usuário e pode ser elimidada pelo SO se a memória for necessária em outro processo.

Se uma activity estiver pausada ou interrompida, o SO poderá removê-la da memória solicitando a finalização de processo (chamando o método finish()) ou eliminando-o, ao reabrir a activity (depois de finalizada ou destruída) ela será totalmente recriada.


Fonte: https://developer.android.com/guide/components/activities?hl=pt-br


Exemplo Prático:

Abra o Android Studio clique em “Start a new Android Studio Project” ou se algum projeto estiver aberto clique em File > Close project e na tela inicial clique em “Start a new Android Studio Project” e preencha de acordo com a imagem e clique em Next:

  • Application name: nome do projeto;
  • Company domain: seu domínio, pode ser sua pagina web ou um fictício, define o pacote do projeto como visto em Package name;
  • Project location: localização do projeto em seu pc;
Na tela seguinte deixe marcado a opção “Phone and Tablet” e selecionada a api mínima 19 (KitKat) e clique em Next:


Selecione Empty Activity e clique em Next:


Deixe tudo como está e clique em Finish:

Com o projeto criado selecione res > layout e abra o arquivo activity_main.xml, altere o layout de acordo com a imagem:


Na classe MainActivity altere o método onCreate como na imagem:
Dentro do método onCreate definimos um log(é similar ao System.out.println do java) e um botão que ao ser clicado pelo usuário abrirá o browser (navegador do cel) na página do google como definido na imagem.

Crie os métodos correspondentes ao ciclo de vida da Activity e em cada um adicione um log:

Salve o projeto, clique em executar ou aperte shift+F10.



Ao iniciar o app no log cat aparecerá as seguintes linhas:



Os métodos onCreate, onStart e onResume foram executados, criando, iniciando e mostrando a IU ao usuário. Ao clicar em voltar no app as seguintes linhas aparecem no log cat:

Agora os métodos onPause, onStop e onDestroy foram executados, pausando, parando e destruindo a Activity, ao clicar no icone do app na galeria de apps do emulador (não executando pelo Android Studio) verá que as três linhas anteriores são mostradas, pois o método onDestroy destruiu a Activity e ela foi criada novamente executando o onCreate.

Com o app aberto clique no botão para abrir o browser as seguintes linhas são mostradas no logcat:

Apenas os métodos onPause e onStop são chamados, ou seja a Activity não foi destruida está em “segundo plano”, ao clicar em voltar para fechar o browser e mostrar a tela do app novamente vemos:


Veja que os métodos onRestart, onStart e onResume são chamados e a Activity é trazida ao “primeiro plano” novamente.

Observação: os métodos onCreate e onDestroy são chamados apenas uma vez no ciclo de vida.


Até a proxima!






Nenhum comentário:

Postar um comentário