Blogger templates

Comunidade java aberto - Participe da nossa comunidade no facebook (clique aqui)

Visitas

terça-feira, 20 de novembro de 2012

Activity – o que é isso?

,

Hoje iremos conhecer uma das mais importantes classes de uma aplicação Android: A classeActivity.
No post “Criando um projeto Android (Helloworld!)” comecei a falar sobre ela:
Uma Activity é basicamente uma classe gerenciadora de UI (Interface com o usuário). Todo aplicativo android começa por uma Activity.
Ou seja, quando uma aplicação android é executada, na verdade é a sua Activity principal que é lançada.

Ciclo de vida de uma Activity

Uma das coisas que é importante conhecer sobre a Activity é o seu ciclo de vida. E para explicá-lo, nada melhor do que o seguinte diagrama*:
Ciclo de vida de uma Activity
Ciclo de vida de uma Activity

Este diagrama é de fundamental importância para o correto entendimento do funcionamento de uma aplicação android. Ele introduz, implicitamente, os estados que uma Activity pode estar,  os quais explico no desenho abaixo:
Estados de uma Activity
Estados de uma Activity
Voltando ao diagrama do ciclo de vida, temos as seguintes funções:
  • onCreate() É a primeira função a ser executada quando uma Activity é lançada. Geralmente é a responsável por carregar os layouts XML e outras operações de inicialização. É executada somente uma vez durante a “vida útil” da Activity.
  • onStart() É chamada imediatamente após a onCreate() – e também quando uma Activity que estava em background volta a ter foco.
  • onResume() Assim como a onStart(), é chamada na inicialização da Activity (logo após a própria onStart())  e também quando uma Activity volta a ter foco. Qual a diferença entre as duas? A onStart() só é chamada quando a Activity não estava mais visível na tela e volta a ter o foco, enquanto a onResume() sempre é chamada nas “retomadas de foco”.
  • onPause() É a primeira função a ser invocada quando a Activity perde o foco (ou seja, uma outra Activity vem à frente).
  • onStop() – Análoga à onPause(), só é chamada quando a Activity fica completamente encoberta por outra Activity (não é mais visível).
  • onDestroy() A última função a ser executada. Depois dela, a Activity é considerada “morta” – ou seja, nao pode mais ser relançada. Se o usuário voltar a requisitar essa Activity, outro objeto será contruído.
  • onRestart() Chamada imediatamente antes da onStart(), quando uma Activity volta a ter o foco depois de estar em background.

Executando uma Activity

Já sabemos que quando a sua aplicação é executada, a Activity definida como padrão (na criação do projeto) é lançada. Mas eu posso criar outras Activities?
É claro que sim.
E para executar outras Activities, basta usar as funções startActivity() e startActivityForResult(). No exemplo abaixo, lançamos uma segunda Activity a partir da principal, e esperamos umresultado dela – como se fosse um retorno de função.
  1.  static final int PICK_CONTACT_REQUEST = 0;  
  2.   
  3.   @Override  
  4.   public void onCreate(Bundle savedInstanceState) {  
  5.       super.onCreate(savedInstanceState);  
  6.       setContentView(R.layout.main);  
  7.       startActivityForResult(  
  8.               new Intent(Intent.ACTION_CONTACT_REQUEST,  
  9.               new Uri("content://contacts")),  
  10.               CONTACT_REQUEST);  
  11.   }  
  12.   
  13.   protected void onActivityResult(int requestCode, int resultCode,   
  14.                                             Intent data) {  
  15.       if (requestCode == CONTACT_REQUEST) {  
  16.    if (resultCode == RESULT_OK) {  
  17.           // fazer alguma coisa...  
  18.     }  
  19. }  
Quando a segunda Activity terminar a sua execução, a função onActivityResult() será invocada, com o “resultado” como parâmetro.

Mas como uma Activity define o seu resultado, a ser lido por aquela que a chamou?
Isso é feito invocando-se a função setResult (int resultCode), como por exemplo:
  1. setResult(Intent.RESULT_OK);  
Alguém percebeu que eu não disse nada sobre os parâmetros da startActivityForResult()? Isso é porque este é o assunto do meu próximo post – o mecanismo de Uris em Android


0 comentários to “Activity – o que é isso?”

Postar um comentário

Insira seu comentário

 

Java Aberto Copyright © 2011 -- Template created by O Pregador -- Powered by Blogger