Baixe o app para aproveitar ainda mais
Prévia do material em texto
Prof. Milton Escóssia 2018 PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS - CCT0080 Aula – 11 Por dentro da Activity Activity Classe da API do Android utilizada para controlar o comportamento de uma tela. Realiza ações como exibir a tela da app, tratar eventos, navegar entre telas, etc. Representa uma tela da aplicação. Define a tela (GUI) a ser exibida. Define métodos chamados para responder a eventos de tela. Controla o estado e eventos da tela. A Classe Activity Classe Android usada para criar Telas personalizadas. Toda activity de um projeto deve especializar essa classe. Activity MinhaActivity A Classe Activity A Classe Activity Permite realizar tarefas como: Determinar qual interface gráfica será exibida ao usuário, Navegar entre telas, Passar parametros para outra tela, Receber dados de uma tela, etc. A Classe Activity x AndroidManifest Cada Activity de um projeto Android deve estar declarado no arquivo “AndroidManifest.xml”. Pode-se especificar um ícone ou um tema para estilizar a interface de usuário. O atributo android:name é o único obrigatório. É utilizado para especificar o nome de classe. A Classe Activity x AndroidManifest A tag <intent-filter> é utilizada para definir caracteristicas da Activity. Ex: o tipo de ação e categoria que ela pertence. A tag <action> especifica que a Activity é o “principal” ponto de entrada do aplicativo. A tag <category> especifica que a Actvity deve aparecer no menu do sistema operacional Android. Só uma Activity deve ter a ação “main” e a categoria “launcher”. A Classe Activity x AndroidManifest AppCompatActivity x Activity Classe que pertence a uma biblioteca a parte do Android. Sua dependência necessita ser declarada no Gradle. A classe Activity é a classe base para todas as outras activities (incluíndo a classe AppCompatActivity). A classe AppCompatActivity é uma especialização da classe Activity. Pertence ao pacote android.support.v7.app. Possui os mesmos métodos da Activity. Provê suporte aos recursos de ActionBar (support library action bar features). Métodos Importantes da Classe Activity Fornece um conjunto de metodos utilizados no gerenciamento de uma Activity, tais como: void setContentView( view ) View findViewById( int ) void finish( ) void startActivity( Intent ) Intent getIntent( ) etc. Iniciando e Finalizando uma Activity Uma Activity é inicializada pelo método onCreate( ) Método obrigatório em uma Activity. Responsavel em tratar os eventos gerados pelo usuario. Contém as instruções para inicialização de recursos. Solicita a criação da tela com “setContentView( )” O método finish( ) Encerra a execução da Activity. Elimina a activity da memória. Internamente faz chamada ao método onDestroy( ) do ciclo de vida da Activity. A Pilha de Atividades Para cada aplicativo que está sendo executado em um dispositivo Android, o sistema de operacional mantém uma Pilha de Activities (Android Stack). Quando uma aplicação é iniciada, a primeira Activity do aplicativo é colocada na pilha. Quando uma segunda Activity é iniciada, ela é colocada no topo da pilha ficando ativa (em execução) e a anterior é empurrada para baixo. Quando a Activity ativa sai, ela é retirada da pilha e a anterior localizada imediatamente abaixo dela na pilha se torna ativa. A Pilha de Atividades A Activity pode ser removida da stack Activity quando o usuário aperta o botão “Back Key” (voltar) para voltar a tela anterior. Isso faz com que a Activity atual seja retirada da pilha pelo sistema sendo destruida. A Pilha de Atividades A Activity no topo dessa pilha representa a activity em execucao. Se exisitem outras activities, essas podem estar: Em execucao em 2o plano; Pausado; Totalmente parado. Uma activity pausada pode ser encerrada pelo S.O. para liberar recursos e memoria para outras activities. A Pilha de Atividades A Pilha de Atividades Ciclo de Vida de uma Activity Toda Activity possui inicio, meio e fim. O conjunto de etapas executadas durante a “vida” de uma Activity e chamada de Ciclo de Vida da Activity. O S.O. é quem gerencia o ciclo de vida da Activity. Estados da Activity x Ciclo de Vida da Activity Ciclo de Vida de uma Activity Métodos do Ciclo de Vida onCreate(): Método obrigatório. E invocado uma única vez. Em geral, define o View(layout) da Activity. É usado para iniciar outras partes estáticas da Activity. Em seguida é invocado o onStart. Métodos do Ciclo de Vida onStart(): É chamada imediatamente após a onCreate(). Também e chamado quando uma Activity volta a ter foco. É executado depois da Activity ser enviada para o segundo plano. Método para se certificar de que todos os recursos requeridos continuam disponíveis. Ex: se estiver usando o GPS, o onStart é um bom lugar para se certificar de que o GPS estará disponível. Métodos do Ciclo de Vida onResume(): Sempre invocado quando a Activity recebe o foco novamente. Método usado para obter Intents e dados extras. onPause(): É acionado, quando a Activity deixa o primeiro plano. A App está parcialmente visível. Salva o estado da aplicação, quando o celular entra em modo de espera por exemplo. Método usado para parar animações, salvar dados e liberar recursos do sistema. Tudo que for liberado nesse método deverá ser reconfigurado no método onResume. Métodos do Ciclo de Vida onStop(): Quando a mesma está sendo encerrada e não fica mais visivel ao usuário. Método usado para liberar todos os recursos que não são mais utilizados pelo usuário. onDestroy(): Chamado antes da Activity ser destruída (removida da memória). Ex: quando solicitado a finalizacao da Activity. Pode ser invocado pelo sistema operacional, se for necessário desalocar recursos da memória. onRestart(): Chamado quando uma Activity volta depois de ficar fora temporariamente. Invoca o método onStart. Ciclo de Vida de uma Activity Subniveis do Ciclo de Vida Principal Ciclos repetidos ao longo da execução de uma aplicação: Entire lifetime Visible lifetime Foreground lifetime Subníveis do Ciclo de Vida de uma Activity onCreate onStart( ) onResume( ) onPause( ) onStop( ) onDestroy( ) Entire Lifetime Visible Lifetime Foreground Lifetime Fluxo entre od Subníveis do Ciclo de Vida de uma Activity Entire Lifetime Ciclo de vida completo. Vai do inicio a destruicao da aplicacao. E executado apenas 1 vez. Define o tempo de vida completa de uma Activity. Ocorre entre: onCreate( ) –> onDestroy() Na execucao do metodo onCreate(), a Activity ainda nao esta visivel ao usuario. Visible Lifetime Activity esta iniciada (em 1o ou 2o plano). Em 1o plano quer dizer que esta no topo da Android Stack. Ocorre entre: onStart() – onStop() A activity esta visivel ao usuario. Os metodos do ciclo de vida podem ser chamados diversas vezes. Obs: Ao executar o onStart(), o onResume() e automaticamente invocado. Foreground Lifetime Activity esta no topo da Android Stack (em 1o plano). Ocorre entre: onResume() – onPause() A activity esta visivel ao usuario. A activity pode alterar entre executando - pausado. Obs: O codigo desses metodos devem ser leves e rapidos. Destruicao de uma Activity pelo S.O. Durante a execucao dos metodos: onPause() onStop() onDestroy() Uma Activity pode ser destruida pelo S.O. para liberar recursos, caso existam condicoes criticas. Logging da aplicacao Se refere a emissão de mensagens para uma unidade de saida. Utiliza-se os metodos estaticos da classe Log, do pacote “android.util” Esses metodos permitem emitir diversos tipos de mensagens de log. O System.out.println( ) do Java corresponde ao Log do Android. Tipos de Log Nivel Sigla Cor Debug d azul Verbose v Preto Info i Verde Warn w Laranja Error e Vermelho As mensagens podem ser emitidas segundo seu nivel de severidade: LogCat Ferramenta do Android para visualização de Log’s gerados por uma aplicação. Corresponde a janela “Console” do Eclipse. Gerencia todos os logs emitidos pelo Android Visualizando a janela LogCat A janela LogCat Exemplo: Emitindo mensagens de Log Tela: Emitindo mensagens de Log Resultado: Emitindo mensagens de Log Codigo: Exercício 2 Crie um projeto Android com 3 botões. O 1o botão: “Informacoes” - deve enviar uma mensagem do tipo “Info” ao LogCat. O 2o botão: “Alerta” - deve enviar uma mensagem do tipo “Warn” ao LogCat. O 3o botão: “Erro” - deve enviar uma mensagem do tipo “Error” ao LogCat. O 4o botão: “Depuracao” - deve enviar uma mensagem do tipo “Debug” ao LogCat. O 5o botão: “Verbose” - deve enviar uma mensagem do tipo “Verbose” ao LogCat. O 6o botão: “Fechar” deve encerrar a aplicacao. Exercício 2 Tela (Activity) Desejada: Exercício 2 Resultado desejado ao clicar na sequencia dos botoes: Exercício 3 Crie um projeto que emita mensagens de Log em cada etapa do ciclo de vida de uma Activity. 1. Analisar o log da aplicação quando você mudar a orientação da tela. 2. Ao executar outra aplicação sobre a sua. Exercício 4 Crie um projeto que emita mensagens de Log em cada etapa do ciclo de vida de uma Activity. Em seguida simule o recebimento de uma ligação telefônica e avalie o comportamento do ciclo de vida a Activity.
Compartilhar