Curso Android - 03 Conceitos Chaves

1.027 visualizações

Publicada em

0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
1.027
No SlideShare
0
A partir de incorporações
0
Número de incorporações
2
Ações
Compartilhamentos
0
Downloads
83
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Curso Android - 03 Conceitos Chaves

  1. 1. Conceitos Chaves do AndroidActivity Ao desenvolver uma aplicação para Android, devemos estar familiarizados com algunsconceitos básicos relacionados à sua estrutura. Entre eles, podemos citar dois componentesessenciais para toda aplicação: as activities e os intents. Uma activity herda da classe android.app.Activity ou subclasses desta, geralmenterepresenta 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 setenha ao menos uma Activity. É importante ressaltar que a Activity é apenas a tela exibida, semnenhum layout. Geralmente, para adicionarmos conteúdo nas activies, devemos utilizar osarquivos XML de layout do Android, nos quais definem-se todos os elementos visuais, taiscomo 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 deactivity estamos falando de uma tela ou uma “atividade”, assim se você está pensando em criaruma nova tela, vai precisar de uma nova activity, então se o usuário solicitar uma nova tela naaplicação, você saberá que será necessário construir uma nova activity. Na prática podemos associar a palavra activity à palavra “tela”. Por exemplo, vamosanalisar as seguintes frases, onde a primeira está escrita com a palavra activity e a outra com apalavra “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 eresponsável por realizar a inicialização necessária para executar a aplicação necessária paraexecutar 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. 2. Ciclo de Vida de uma Activity Quando você está jogando a activity que esta no topo da pilha da “activity stack” é aactivity do jogo, as demais activities que estão abaixo da pilha, podem estar em modo depausa, totalmente parado ou executando em segundo plano. Mas se você está jogando erecebe 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 jogoabaixo, temporariamente parada. Existem alguns métodos que controlam o ciclo de vida deuma aplicação. São eles, onCreate(), onStart(), onResume(), onPause(),onStop() e oonDestroy(). 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 observaro comportamento de uma activity. 2
  3. 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 ciclode 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 dométodo onCreate() e onDestroy() os quais são chamados apenas uma única vez, quando aactivity é 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 dométodo onStart(), o fluxo do ciclo visible lifetime é executado entre as chamadas dosmétodos onResume(),onPause(), onStop() e onRestart(). Durante esse período, a activitypode 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 frequentementeoscilar nesses estados de onResume() e onPause(). Um exemplo disto é um jogo que entraem pausa e pode ser continuado depois.Exemplo de Ciclo de Vidapackage curso.android;import android.app.Activity;import android.os.Bundle;import android.util.Log;import android.widget.TextView; 3
  4. 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. 5. Se deixarmos o LogCat aberto, e executarmos o código acima, ele retornará váriasinformações a respeito da aplicação, algumas delas são as já escritas na classeExemploCicloVida.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étodosonCreate(), 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 eexibir 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á notopo da pilha dando espaço para a atividade subsequente. 5
  6. 6. 6

×