SlideShare a Scribd company logo
1 of 6
Download to read offline
Conceitos Chaves do Android

Activity

        Ao desenvolver uma aplicação para Android, devemos estar familiarizados com alguns
conceitos básicos relacionados à sua estrutura. Entre eles, podemos citar dois componentes
essenciais para toda aplicação: as activities e os intents.

       Uma activity herda da classe android.app.Activity ou subclasses desta, geralmente
representa uma tela da aplicação e é responsável por tratar os eventos gerados nessa tela,
como quando o usuário pressiona um botão ou quando um item de menu é escolhido.

        Para desenvolver qualquer aplicação com interface em Android é necessário que se
tenha ao menos uma Activity. É importante ressaltar que a Activity é apenas a tela exibida, sem
nenhum layout. Geralmente, para adicionarmos conteúdo nas activies, devemos utilizar os
arquivos XML de layout do Android, nos quais definem-se todos os elementos visuais, tais
como botões e imagens.

         Cada activity é responsável por controlar os eventos da tela e definir qual View será
responsável por desenhar a interface gráfica do usuário. Em resumo, quando falamos de
activity estamos falando de uma tela ou uma “atividade”, assim se você está pensando em criar
uma nova tela, vai precisar de uma nova activity, então se o usuário solicitar uma nova tela na
aplicação, você saberá que será necessário construir uma nova activity.

        Na prática podemos associar a palavra activity à palavra “tela”. Por exemplo, vamos
analisar as seguintes frases, onde a primeira está escrita com a palavra activity e a outra com a
palavra “tela”.

              O Sistema operacional decidiu encerrar a activity X para economizar memória.

              O Sistema operacional decidiu encerrar a tela X para economizar memória.

       Uma activity deve implementar o método onCreate(bundle), que é obrigatório e
responsável por realizar a inicialização necessária para executar a aplicação necessária para
executar a aplicação, como, por exemplo, chamar o método setContentView(View) que é
responsável por definir o layout (já desenhado) para determinada activity.




Exemplo de Activity.




                                                1
Ciclo de Vida de uma Activity

         Quando você está jogando a activity que esta no topo da pilha da “activity stack” é a
activity do jogo, as demais activities que estão abaixo da pilha, podem estar em modo de
pausa, totalmente parado ou executando em segundo plano. Mas se você está jogando e
recebe uma ligação. O que acontecerá?




                                        Angry Birds



         O Android colocará a aplicação de ligação no topo da pilha e a aplicação do jogo
abaixo, temporariamente parada. Existem alguns métodos que controlam o ciclo de vida de
uma aplicação. São eles, onCreate(), onStart(), onResume(), onPause(),onStop() e o
onDestroy(). Também existem subníveis de um ciclo de vida, são eles, entire lifetime,
visibile lifetime e o foreground lifetime. Abaixo existe uma imagem onde você pode observar
o comportamento de uma activity.




                                              2
Métodos do Ciclo de Vida

   •     onCreate() É um método obrigatório e é invocado uma vez. Geralmente no mesmo é
         definido o View da Acitivity. Em seguida é invocado o onStart.

   •     onStart() É chamada imediatamente após a onCreate() – e também quando uma
         Activity que estava em background volta a ter foco.

   •     onResume() Sempre invocada quando a Activity recebe o foco novamente.

   •     onPause() Salva o estado da aplicação, quando o celular entra em modo de espera
         por exemplo.

   •     onStop() – Quando a mesma está sendo encerrada e não fica mais visivel ao usuário.

   •     onDestroy() Este método literalmente finaliza a aplicação e pode ser invocado também
         pelo sistema operacional, caso ele deseje desalocar recursos.

   •     onRestart() Quando uma Activity volta depois de ficar fora temporariamente e invoca o
         método onStart.

Processo do ciclo de vida

    Cada ciclo desses se inicia durante a chamada de um dos métodos que controlam o ciclo
de vida da atividade e termina quando outro método é chamado.

   •     Entire lifetime – Ciclo de vida completo entre o início e destruição da activity.

     Define o tempo de vida completo de um activity. Ele acontece entre as chamadas do
método onCreate() e onDestroy() os quais são chamados apenas uma única vez, quando a
activity é criada e destruída.

   •     Visible lifetime – Activity está iniciada, mas pode estar no topo da pilha interagindo
         com o usuário ou temporariamente parada em Segundo plano.

   Este ciclo ocorre entre os métodos onStart() e onStop(). A partir da execução do
método onStart(), o fluxo do ciclo visible lifetime é executado entre as chamadas dos
métodos onResume(),onPause(), onStop() e onRestart(). Durante esse período, a activity
pode está visível para o usuário ou pode está sendo executada em segundo plano.

   •     Foreground lifetime – Activity está no topo da pilha e interagindo com o usuário.

    Esse ciclo de vida ocorre entre os métodos onResume() e onPause. Durante esse tempo,
a activity está no topo da pilha e interagindo com usuário. Uma activity pode frequentemente
oscilar nesses estados de onResume() e onPause(). Um exemplo disto é um jogo que entra
em pausa e pode ser continuado depois.

Exemplo de Ciclo de Vida

package curso.android;

import    android.app.Activity;
import    android.os.Bundle;
import    android.util.Log;
import    android.widget.TextView;




                                                 3
public class ExemploCicloVida extends Activity {
      protected static final String TAG = "Curso Android";

      public void onCreate(Bundle icicle) {
            super.onCreate(icicle);

             Log.i(TAG, "Método - .onCreate() chamado: " + icicle);

             TextView t = new TextView(this);
             t.setText("Exemplo do ciclo de vida.
                       nConsulte os logs no LogCat.");
             setContentView(t);
      }
      protected void onStart() {
            super.onStart();
            Log.i(TAG, "Método - .onStart() chamado.");
      }
      protected void onRestart() {
            super.onRestart();
            Log.i(TAG, "Método - .onRestart() chamado.");
      }
      protected void onResume() {
            super.onResume();
            Log.i(TAG, "Método - .onResume() chamado.");
      }
      protected void onPause() {
            super.onPause();
            Log.i(TAG, "Método - .onPause() chamado.");
      }
      protected void onStop() {
            super.onStop();
            Log.i(TAG, "Método - .onStop() chamado.");
      }
      protected void onDestroy() {
            super.onDestroy();
            Log.i(TAG, "Método - .onDestroy() chamado.");
      }
}

      As informações de execução estarão dispostas no LogCat (Window > Show View >
LogCat) do Eclipse:




                                        4
Se deixarmos o LogCat aberto, e executarmos o código acima, ele retornará várias
informações a respeito da aplicação, algumas delas são as já escritas na classe
ExemploCicloVida.java como logs.

       Esse log se apresenta da seguinte forma:

Log.i(TAG, "Método - .onCreate() chamado: " + icicle);

        As informações que escrevemos possuem a TAG “Curso Android” e na frente dela,
o retorno que escolhemos para cada método chamado.




      Como vimos no início do módulo, quando se executa uma activity, os métodos
onCreate(), onStart() e onResume() são chamados automaticamente na sua inicialização.

         Se clicarmos no botão Home, que vai fazer a aplicação entrar em segundo plano e
exibir a tela seguinte (tela inicial, por exemplo).




       Exemplo de Pilha (stack, ou LIFO – Last In, Fisrt Out).


                                             App02                               App01
                       Novo                                       Kill
  App01                                      App01                               Menu
                       App                                       App02
   Menu                                      Menu



        Diferente do método onPause(), o método onDestroy() mata a aplicação que está no
topo da pilha dando espaço para a atividade subsequente.




                                             5
6

More Related Content

What's hot

Ajax O Objeto Xml Http Request Parte 3
Ajax   O Objeto Xml Http Request   Parte 3Ajax   O Objeto Xml Http Request   Parte 3
Ajax O Objeto Xml Http Request Parte 3
infinitopublicidade
 
Java orientação a objetos (associacao, composicao, agregacao)
Java   orientação a objetos (associacao, composicao, agregacao)Java   orientação a objetos (associacao, composicao, agregacao)
Java orientação a objetos (associacao, composicao, agregacao)
Armando Daniel
 

What's hot (20)

DevFest 2012 - Esquartejando sua Activity com Fragments
DevFest 2012 - Esquartejando sua Activity com FragmentsDevFest 2012 - Esquartejando sua Activity com Fragments
DevFest 2012 - Esquartejando sua Activity com Fragments
 
Coroutines tech summit
Coroutines  tech summitCoroutines  tech summit
Coroutines tech summit
 
Indo além com Automação de Testes de Apps Android
Indo além com Automação de Testes de Apps AndroidIndo além com Automação de Testes de Apps Android
Indo além com Automação de Testes de Apps Android
 
Ajax O Objeto Xml Http Request Parte 3
Ajax   O Objeto Xml Http Request   Parte 3Ajax   O Objeto Xml Http Request   Parte 3
Ajax O Objeto Xml Http Request Parte 3
 
Java - Introdução a banco de dados
Java - Introdução a banco de dadosJava - Introdução a banco de dados
Java - Introdução a banco de dados
 
TDC2016POA | Trilha Android - Testes no Android
TDC2016POA | Trilha Android - Testes no AndroidTDC2016POA | Trilha Android - Testes no Android
TDC2016POA | Trilha Android - Testes no Android
 
POO - 22 - Tratamento de Exceções em Java
POO - 22 - Tratamento de Exceções em JavaPOO - 22 - Tratamento de Exceções em Java
POO - 22 - Tratamento de Exceções em Java
 
Refatoração e Boas Práticas no Desenvolvimento de Software com a Linguagem Ja...
Refatoração e Boas Práticas no Desenvolvimento de Software com a Linguagem Ja...Refatoração e Boas Práticas no Desenvolvimento de Software com a Linguagem Ja...
Refatoração e Boas Práticas no Desenvolvimento de Software com a Linguagem Ja...
 
UNIFAL - MySQL Triggers - 5.0/5.6
UNIFAL - MySQL Triggers - 5.0/5.6UNIFAL - MySQL Triggers - 5.0/5.6
UNIFAL - MySQL Triggers - 5.0/5.6
 
Respiração Programada
Respiração ProgramadaRespiração Programada
Respiração Programada
 
Como conectar programas em linguagem java a bases de dados
Como conectar programas em linguagem java  a bases de dadosComo conectar programas em linguagem java  a bases de dados
Como conectar programas em linguagem java a bases de dados
 
Apostila PhP com Wamp, 4a Parte
Apostila PhP com Wamp, 4a ParteApostila PhP com Wamp, 4a Parte
Apostila PhP com Wamp, 4a Parte
 
Certificação Java: Exceções
Certificação Java: ExceçõesCertificação Java: Exceções
Certificação Java: Exceções
 
Introdução ao JavaFX
Introdução ao JavaFXIntrodução ao JavaFX
Introdução ao JavaFX
 
Apache Struts
Apache StrutsApache Struts
Apache Struts
 
Java orientação a objetos (associacao, composicao, agregacao)
Java   orientação a objetos (associacao, composicao, agregacao)Java   orientação a objetos (associacao, composicao, agregacao)
Java orientação a objetos (associacao, composicao, agregacao)
 
Triggers no SQL Server
Triggers no SQL ServerTriggers no SQL Server
Triggers no SQL Server
 
Aplicacoes gráficas em Java
Aplicacoes gráficas em JavaAplicacoes gráficas em Java
Aplicacoes gráficas em Java
 
CURSO JAVA 02
CURSO JAVA 02CURSO JAVA 02
CURSO JAVA 02
 
Ferramentas testes2003
Ferramentas testes2003Ferramentas testes2003
Ferramentas testes2003
 

Viewers also liked (6)

Hello World Android
Hello World AndroidHello World Android
Hello World Android
 
Curso Android - 02 configuração do ambiente (Tutorial de Instalação Eclipse +...
Curso Android - 02 configuração do ambiente (Tutorial de Instalação Eclipse +...Curso Android - 02 configuração do ambiente (Tutorial de Instalação Eclipse +...
Curso Android - 02 configuração do ambiente (Tutorial de Instalação Eclipse +...
 
Hello World Android
Hello World AndroidHello World Android
Hello World Android
 
Developing for the Android Platform
Developing for the Android PlatformDeveloping for the Android Platform
Developing for the Android Platform
 
Android App Development - 01 Introduction
Android App Development - 01 IntroductionAndroid App Development - 01 Introduction
Android App Development - 01 Introduction
 
Apostila android
Apostila androidApostila android
Apostila android
 

Similar to Curso Android - 03 Conceitos Chaves

Atividades e Intenções (Android)
Atividades e Intenções (Android)Atividades e Intenções (Android)
Atividades e Intenções (Android)
Natanael Fonseca
 
Aula 15 e 16 - Navegação - Activities e Fragments.pptx.pdf
Aula 15 e 16 - Navegação - Activities e Fragments.pptx.pdfAula 15 e 16 - Navegação - Activities e Fragments.pptx.pdf
Aula 15 e 16 - Navegação - Activities e Fragments.pptx.pdf
nosbisantos
 
Apostila:Curso de java II
Apostila:Curso de java II  Apostila:Curso de java II
Apostila:Curso de java II
Verônica Veiga
 
Introdução à programação para Android
Introdução à programação para AndroidIntrodução à programação para Android
Introdução à programação para Android
Jorge Cardoso
 

Similar to Curso Android - 03 Conceitos Chaves (20)

Aula - Activity
Aula  -  ActivityAula  -  Activity
Aula - Activity
 
Construindo sua primeira aplicação android
Construindo sua primeira aplicação androidConstruindo sua primeira aplicação android
Construindo sua primeira aplicação android
 
Atividades e Intenções (Android)
Atividades e Intenções (Android)Atividades e Intenções (Android)
Atividades e Intenções (Android)
 
Java14
Java14Java14
Java14
 
Aula02 android hands_on
Aula02 android hands_onAula02 android hands_on
Aula02 android hands_on
 
Introdução ao Android (minicurso 4h)
Introdução ao Android (minicurso 4h)Introdução ao Android (minicurso 4h)
Introdução ao Android (minicurso 4h)
 
Desenvolvimento Android p1
Desenvolvimento Android p1Desenvolvimento Android p1
Desenvolvimento Android p1
 
Introdução a programação em Android
Introdução a programação em AndroidIntrodução a programação em Android
Introdução a programação em Android
 
Dê seus primeiros passos no desenvolvimento com Android
Dê seus primeiros passos no desenvolvimento com AndroidDê seus primeiros passos no desenvolvimento com Android
Dê seus primeiros passos no desenvolvimento com Android
 
TDC2016POA | Trilha Android - Testes no Android
TDC2016POA | Trilha Android - Testes no AndroidTDC2016POA | Trilha Android - Testes no Android
TDC2016POA | Trilha Android - Testes no Android
 
Aula 15 e 16 - Navegação - Activities e Fragments.pptx.pdf
Aula 15 e 16 - Navegação - Activities e Fragments.pptx.pdfAula 15 e 16 - Navegação - Activities e Fragments.pptx.pdf
Aula 15 e 16 - Navegação - Activities e Fragments.pptx.pdf
 
Apostila Visualg
Apostila VisualgApostila Visualg
Apostila Visualg
 
Introdução ao desenvolvimento de apps para Android - Dia 2/2
Introdução ao desenvolvimento de apps para Android - Dia 2/2Introdução ao desenvolvimento de apps para Android - Dia 2/2
Introdução ao desenvolvimento de apps para Android - Dia 2/2
 
Padrão Observador (Orientação à Objetos)
Padrão Observador (Orientação à Objetos)Padrão Observador (Orientação à Objetos)
Padrão Observador (Orientação à Objetos)
 
Apostila:Curso de java II
Apostila:Curso de java II  Apostila:Curso de java II
Apostila:Curso de java II
 
Pdm -final
Pdm  -finalPdm  -final
Pdm -final
 
Introdução à programação para Android
Introdução à programação para AndroidIntrodução à programação para Android
Introdução à programação para Android
 
Computação Móvel 2012.2 - Android
Computação Móvel 2012.2 - AndroidComputação Móvel 2012.2 - Android
Computação Móvel 2012.2 - Android
 
Grid com JPPF
Grid com JPPFGrid com JPPF
Grid com JPPF
 
Aprendendo objective c - parte 1
Aprendendo objective c - parte 1Aprendendo objective c - parte 1
Aprendendo objective c - parte 1
 

More from Ronildo Oliveira

Curso Android - 01 Introdução ao Android
Curso Android - 01 Introdução ao AndroidCurso Android - 01 Introdução ao Android
Curso Android - 01 Introdução ao Android
Ronildo Oliveira
 

More from Ronildo Oliveira (20)

Desenvolvimento de jogos Mobile - FliSol 2017
Desenvolvimento de jogos Mobile - FliSol 2017Desenvolvimento de jogos Mobile - FliSol 2017
Desenvolvimento de jogos Mobile - FliSol 2017
 
Towards a Computational Model of Melody Identification in Polyphonic Music
Towards a Computational Model of Melody Identification in Polyphonic MusicTowards a Computational Model of Melody Identification in Polyphonic Music
Towards a Computational Model of Melody Identification in Polyphonic Music
 
Relato de Experiência de Monitoria da Disciplina de Estrutura de Dados, Estr...
Relato de Experiência de Monitoria da Disciplina de  Estrutura de Dados, Estr...Relato de Experiência de Monitoria da Disciplina de  Estrutura de Dados, Estr...
Relato de Experiência de Monitoria da Disciplina de Estrutura de Dados, Estr...
 
Avaliação Heurística de um Ambiente Virtual para Análise de Rotas de Execução...
Avaliação Heurística de um Ambiente Virtual para Análise de Rotas de Execução...Avaliação Heurística de um Ambiente Virtual para Análise de Rotas de Execução...
Avaliação Heurística de um Ambiente Virtual para Análise de Rotas de Execução...
 
A relevância da participação em centros acadêmicos para a formação complement...
A relevância da participação em centros acadêmicos para a formação complement...A relevância da participação em centros acadêmicos para a formação complement...
A relevância da participação em centros acadêmicos para a formação complement...
 
Resolução Parcial - Redes de Computadores - Kurose 6ª Edição
Resolução Parcial - Redes de Computadores - Kurose 6ª EdiçãoResolução Parcial - Redes de Computadores - Kurose 6ª Edição
Resolução Parcial - Redes de Computadores - Kurose 6ª Edição
 
Realidade Virtual e Realidade Aumentada em Jogos
Realidade Virtual e Realidade Aumentada em JogosRealidade Virtual e Realidade Aumentada em Jogos
Realidade Virtual e Realidade Aumentada em Jogos
 
Scape From Weirdland - O Jogo
Scape From Weirdland - O JogoScape From Weirdland - O Jogo
Scape From Weirdland - O Jogo
 
Documento de Requisitos do Sistema - Meu Telefone
Documento de Requisitos do Sistema - Meu TelefoneDocumento de Requisitos do Sistema - Meu Telefone
Documento de Requisitos do Sistema - Meu Telefone
 
Slide Encontros Universitários 2015 UFC - SOLID, Design de Software e Progra...
Slide Encontros Universitários 2015 UFC  - SOLID, Design de Software e Progra...Slide Encontros Universitários 2015 UFC  - SOLID, Design de Software e Progra...
Slide Encontros Universitários 2015 UFC - SOLID, Design de Software e Progra...
 
Calculo I - Uma Breve Introdução ao Estudo de Integrais
Calculo I - Uma Breve Introdução ao Estudo de IntegraisCalculo I - Uma Breve Introdução ao Estudo de Integrais
Calculo I - Uma Breve Introdução ao Estudo de Integrais
 
Apresentação de Slide - Deadlocks
Apresentação de Slide - DeadlocksApresentação de Slide - Deadlocks
Apresentação de Slide - Deadlocks
 
Deadlocks (Resumo)
Deadlocks (Resumo)Deadlocks (Resumo)
Deadlocks (Resumo)
 
Resolução de Problemas - Sistemas Operacionais
Resolução de Problemas - Sistemas OperacionaisResolução de Problemas - Sistemas Operacionais
Resolução de Problemas - Sistemas Operacionais
 
Conceitos básicos de sistemas operacionais
Conceitos básicos de sistemas operacionaisConceitos básicos de sistemas operacionais
Conceitos básicos de sistemas operacionais
 
Fases do desenvolvimento de software baseado no código de ética.
Fases do desenvolvimento de software baseado no código de ética.Fases do desenvolvimento de software baseado no código de ética.
Fases do desenvolvimento de software baseado no código de ética.
 
Exercícios Resolvidos - Arquitetura e Organização de Computadores
Exercícios Resolvidos - Arquitetura e Organização de ComputadoresExercícios Resolvidos - Arquitetura e Organização de Computadores
Exercícios Resolvidos - Arquitetura e Organização de Computadores
 
Minicurso de Desenvolvimento Android - Iguatu - CE
Minicurso de Desenvolvimento Android - Iguatu - CEMinicurso de Desenvolvimento Android - Iguatu - CE
Minicurso de Desenvolvimento Android - Iguatu - CE
 
Curso Android - 01 Introdução ao Android
Curso Android - 01 Introdução ao AndroidCurso Android - 01 Introdução ao Android
Curso Android - 01 Introdução ao Android
 
Ciclo de Vida de uma Activity
Ciclo de Vida de uma ActivityCiclo de Vida de uma Activity
Ciclo de Vida de uma Activity
 

Curso Android - 03 Conceitos Chaves

  • 1. Conceitos Chaves do Android Activity Ao desenvolver uma aplicação para Android, devemos estar familiarizados com alguns conceitos básicos relacionados à sua estrutura. Entre eles, podemos citar dois componentes essenciais para toda aplicação: as activities e os intents. Uma activity herda da classe android.app.Activity ou subclasses desta, geralmente representa uma tela da aplicação e é responsável por tratar os eventos gerados nessa tela, como quando o usuário pressiona um botão ou quando um item de menu é escolhido. Para desenvolver qualquer aplicação com interface em Android é necessário que se tenha ao menos uma Activity. É importante ressaltar que a Activity é apenas a tela exibida, sem nenhum layout. Geralmente, para adicionarmos conteúdo nas activies, devemos utilizar os arquivos XML de layout do Android, nos quais definem-se todos os elementos visuais, tais como botões e imagens. Cada activity é responsável por controlar os eventos da tela e definir qual View será responsável por desenhar a interface gráfica do usuário. Em resumo, quando falamos de activity estamos falando de uma tela ou uma “atividade”, assim se você está pensando em criar uma nova tela, vai precisar de uma nova activity, então se o usuário solicitar uma nova tela na aplicação, você saberá que será necessário construir uma nova activity. Na prática podemos associar a palavra activity à palavra “tela”. Por exemplo, vamos analisar as seguintes frases, onde a primeira está escrita com a palavra activity e a outra com a palavra “tela”. O Sistema operacional decidiu encerrar a activity X para economizar memória. O Sistema operacional decidiu encerrar a tela X para economizar memória. Uma activity deve implementar o método onCreate(bundle), que é obrigatório e responsável por realizar a inicialização necessária para executar a aplicação necessária para executar a aplicação, como, por exemplo, chamar o método setContentView(View) que é responsável por definir o layout (já desenhado) para determinada activity. Exemplo de Activity. 1
  • 2. Ciclo de Vida de uma Activity Quando você está jogando a activity que esta no topo da pilha da “activity stack” é a activity do jogo, as demais activities que estão abaixo da pilha, podem estar em modo de pausa, totalmente parado ou executando em segundo plano. Mas se você está jogando e recebe uma ligação. O que acontecerá? Angry Birds O Android colocará a aplicação de ligação no topo da pilha e a aplicação do jogo abaixo, temporariamente parada. Existem alguns métodos que controlam o ciclo de vida de uma aplicação. São eles, onCreate(), onStart(), onResume(), onPause(),onStop() e o onDestroy(). Também existem subníveis de um ciclo de vida, são eles, entire lifetime, visibile lifetime e o foreground lifetime. Abaixo existe uma imagem onde você pode observar o comportamento de uma activity. 2
  • 3. Métodos do Ciclo de Vida • onCreate() É um método obrigatório e é invocado uma vez. Geralmente no mesmo é definido o View da Acitivity. Em seguida é invocado o onStart. • onStart() É chamada imediatamente após a onCreate() – e também quando uma Activity que estava em background volta a ter foco. • onResume() Sempre invocada quando a Activity recebe o foco novamente. • onPause() Salva o estado da aplicação, quando o celular entra em modo de espera por exemplo. • onStop() – Quando a mesma está sendo encerrada e não fica mais visivel ao usuário. • onDestroy() Este método literalmente finaliza a aplicação e pode ser invocado também pelo sistema operacional, caso ele deseje desalocar recursos. • onRestart() Quando uma Activity volta depois de ficar fora temporariamente e invoca o método onStart. Processo do ciclo de vida Cada ciclo desses se inicia durante a chamada de um dos métodos que controlam o ciclo de vida da atividade e termina quando outro método é chamado. • Entire lifetime – Ciclo de vida completo entre o início e destruição da activity. Define o tempo de vida completo de um activity. Ele acontece entre as chamadas do método onCreate() e onDestroy() os quais são chamados apenas uma única vez, quando a activity é criada e destruída. • Visible lifetime – Activity está iniciada, mas pode estar no topo da pilha interagindo com o usuário ou temporariamente parada em Segundo plano. Este ciclo ocorre entre os métodos onStart() e onStop(). A partir da execução do método onStart(), o fluxo do ciclo visible lifetime é executado entre as chamadas dos métodos onResume(),onPause(), onStop() e onRestart(). Durante esse período, a activity pode está visível para o usuário ou pode está sendo executada em segundo plano. • Foreground lifetime – Activity está no topo da pilha e interagindo com o usuário. Esse ciclo de vida ocorre entre os métodos onResume() e onPause. Durante esse tempo, a activity está no topo da pilha e interagindo com usuário. Uma activity pode frequentemente oscilar nesses estados de onResume() e onPause(). Um exemplo disto é um jogo que entra em pausa e pode ser continuado depois. Exemplo de Ciclo de Vida package curso.android; import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.widget.TextView; 3
  • 4. public class ExemploCicloVida extends Activity { protected static final String TAG = "Curso Android"; public void onCreate(Bundle icicle) { super.onCreate(icicle); Log.i(TAG, "Método - .onCreate() chamado: " + icicle); TextView t = new TextView(this); t.setText("Exemplo do ciclo de vida. nConsulte os logs no LogCat."); setContentView(t); } protected void onStart() { super.onStart(); Log.i(TAG, "Método - .onStart() chamado."); } protected void onRestart() { super.onRestart(); Log.i(TAG, "Método - .onRestart() chamado."); } protected void onResume() { super.onResume(); Log.i(TAG, "Método - .onResume() chamado."); } protected void onPause() { super.onPause(); Log.i(TAG, "Método - .onPause() chamado."); } protected void onStop() { super.onStop(); Log.i(TAG, "Método - .onStop() chamado."); } protected void onDestroy() { super.onDestroy(); Log.i(TAG, "Método - .onDestroy() chamado."); } } As informações de execução estarão dispostas no LogCat (Window > Show View > LogCat) do Eclipse: 4
  • 5. Se deixarmos o LogCat aberto, e executarmos o código acima, ele retornará várias informações a respeito da aplicação, algumas delas são as já escritas na classe ExemploCicloVida.java como logs. Esse log se apresenta da seguinte forma: Log.i(TAG, "Método - .onCreate() chamado: " + icicle); As informações que escrevemos possuem a TAG “Curso Android” e na frente dela, o retorno que escolhemos para cada método chamado. Como vimos no início do módulo, quando se executa uma activity, os métodos onCreate(), onStart() e onResume() são chamados automaticamente na sua inicialização. Se clicarmos no botão Home, que vai fazer a aplicação entrar em segundo plano e exibir a tela seguinte (tela inicial, por exemplo). Exemplo de Pilha (stack, ou LIFO – Last In, Fisrt Out). App02 App01 Novo Kill App01 App01 Menu App App02 Menu Menu Diferente do método onPause(), o método onDestroy() mata a aplicação que está no topo da pilha dando espaço para a atividade subsequente. 5
  • 6. 6