PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS E SEM FIO:
ACTIVITY
Prof. Me. Pedro Henrique Neves da Silva
• Uma activity deve herdar da classe android.app.Activity ou alguma subclasse desta.
• Geralmente representa uma tela da aplicação e é responsável por tratar os eventos gerados nessa tela, quando por exemplo, o usuário pressiona um botão ou quando um item é escolhido.
• Cada activity deve implementar o método onCreated(budle), que é obrigatório e responsável por realizar a inicialização necessária para executar a aplicação, como por exemplo, chamar o método setContentView(view) para definir a interface de usuário, onde um objeto do tipo android.view.View é informado, o qual é responsável por desenhar os elementos gráficos na tela.
Activity
• Cada activity deve ser obrigatoriamente declarada no arquivo
AndroidManifest.xml (da mesma forma que declaramos um servlet no arquivo web.xml de uma aplicação web).
• Isso é feito por meio da tag <activity>:
<activity android:name=“.MinhaClasseActivity” />
Activity
• A tradução da palavra activity para o português é atividade.
• Então também podemos dizer que uma activity representa uma atividade, ação ou funcionalidade que o usuário pode realizar dentro de sua app.
Activity
• Ciclo de vida de uma atividade refere-se aos possíveis estados em que ela se encontra, que podem ser: executando, temporariamente interrompida em segundo plano ou completamente destruída.
• O Sistema operacional é quem cuida desse ciclo de vida, mas ao desenvolver aplicações é importante levar cada estado possível em consideração para desenvolver uma aplicação robusta.
Activity
Ciclo de vida de uma Activity
Exemplo: Digamos que você criou um maravilhoso jogo no Android, e enquanto o usuário está jogando, alguém faz uma ligação para ele. Nesse caso, o usuário vai parar para atender a ligação, não é? E o que acontece com seu jogo? O sistema operacional vai parar o jogo temporariamente (pause) e colocá-lo em segundo plano enquanto o usuário atende a ligação. Depois que esta terminar, o sistema operacional reiniciará a aplicação do jogo. Será que o estado e informações do jogo serão salvos ou tudo será perdido? O Android fornece toda a estrutura necessária para isso, basta você entender o ciclo de vida de uma activity e implementá-la corretamente.
Activity
Ciclo de vida de uma Activity
• Uma activity tem um ciclo de vida bem definido.
• Cada activity que é iniciada é inserida no topo de uma pilha, chamada de
“activity stack” (pilha de atividades).
• Assim que uma nova activity é inserida no topo da pilha, a activity anterior que estava em execução fica logo abaixo da nova.
• A activity que está no topo da pilha é a que está em execução no momento, e as demais podem estar executando em segundo plano, estar no estado
pausado ou totalmente parada.
Activity
Ciclo de vida de uma Activity
• Sempre que uma activity está pausada o SO pode decidir encerrar o processo para, por exemplo, liberar recursos e memória para outras aplicações.
Exemplo: Digamos que o usuário estava jogando e de repente decidiu navegar na internet e, para isso, ele pausou o jogo. Isso faz com que o Android insira no topo da pilha a aplicação do Brownser de internet, e deixe em segundo plano o jogo que está temporariamente parado. Agora, digamos que o usuário esqueça de voltar ao jogo para continuá-lo e, por algum motivo, o SO precisa liberar recursos e
memória. Sendo assim, como o jogo não está mais em uso, o SO pode decidir encerrar seu processo. Nesse momento sua aplicação pode decidir salvar algumas informações ou não.
Activity
Ciclo de vida de uma Activity
• Há métodos da classe Activity que podem ser utilizados para controlar o estado da aplicação.
– onCreate(bundle) – onStart()
– onRestart() – onResume() – onPause() – onStop() – onDesdroy()
Activity
Ciclo de vida de uma Activity
• onCreate(bundle): primeiro método a ser executada quando uma Activity é lançada. Geralmente é responsável por carregar os layouts XML e outras operações de inicialização. É executada somente um vez durante a vida útil”
• onStart(): chamada imediatamente após o onCreate() e também quando a atividade que estava em background volta a ter foco.
• onRestart(): chamada imediatamente antes da onStart(), quando uma Activity votla a ter foco depois de estar em background, isto é, foi parada
temporariamente.
• onResume(): chamada imediatamente o onStart() e também quando a atividade vai para foreground. A onStart() é chamada quando a activity não estava mais visível na tela e volta a ter foco, enquanto que onResume() sempre é chamada nas “retomadas de foco”.
Activity
Ciclo de vida de uma Activity
• onPause(): primeiro método a ser invocada quando a activity perde o foco.
• onStop(): análoga à onPause(), só é chamada quando a activity fica completamente encoberta por outra atividade.
• onDesdroy(): O último método a ser executado. Depois dela, a activity é
considerada “morta”, ou seja não pode mais ser relançada. Se u usuário voltar a requisitar essa acitivity, outro objeto será construído.
Activity
Ciclo de vida de uma Activity
Activity
Ciclo de vida de uma Activity
• Entenda o termo ciclo de vida com algo que tem início, meio e fim.
• Segundo a documentação do Android há três subníveis do ciclo de vida principal:
– entire lifetime – visible lifetimee – foreground lifetime