• Nenhum resultado encontrado

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS E SEM FIO: ACTIVITY

N/A
N/A
Protected

Academic year: 2021

Share "PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS E SEM FIO: ACTIVITY"

Copied!
20
0
0

Texto

(1)

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS E SEM FIO:

ACTIVITY

Prof. Me. Pedro Henrique Neves da Silva

(2)

• 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

(3)

• 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

(4)

• 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

(5)

• 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

(6)

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

(7)

• 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

(8)

• 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

(9)

• 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

(10)

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

(11)

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

(12)

Activity

Ciclo de vida de uma Activity

(13)

• 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 lifetimevisible lifetimee – foreground lifetime

Activity

Ciclo de vida de uma Activity

(14)

Entire lifetime

• Ciclo de vida completo entre início e destruição da activity. Ocorre apenas uma vez e define o ciclo completo de uma atividade.

• Acontece entre as chamadas dos métodos onCreate(bundle) e onDestroy(), os quais são chamados apenas uma única vez, quando a atividade é criada e destruída, respectivamente.

• Para isso, digamos que o método onCreate() a atividade criou recursos de ficam na memória. Naturalmente é necessário liberar esses recursos antes de finalizar a atividade, e para isso o método onDestroy()

Activity

Ciclo de vida de uma Activity

(15)

Entire lifetime

• A atividade ainda não está visível para o usuário, por que é nesse método que deve-se criar uma view e chamar o método setContentView(view) para

construir a interface gráfica.

Activity

Ciclo de vida de uma Activity

(16)

Visible lifetime

• Atividade é iniciada e pode estar no topo da pilha ou temporariamente parada em segundo plano.

• Ocorre entre os método onStart() e onStop().

• onStart() e chamado logo após o onCreate().

• No método onStart() é definido um ciclo que se repete entre as chamadas dos métodos onStart() > onResume > onPause() > onStop() > onRestart() >

onStart(), e tudo mais uma vez.

Activity

Ciclo de vida de uma Activity

(17)

Visible lifetime

• Durante esse ciclo a activity pode ser visualizada na tela, mas ela pode não estar necessariamente em primeiro plano e interagindo com o usuário.

• Sempre que o método onStart() é chamado, automaticamente o método onResume() também é invocado.

Activity

Ciclo de vida de uma Activity

(18)

Foreground lifetime

• A atividade está no topo da pilha e interagindo com o usuário.

• Esse ciclo ocorre entre os método onResume() e onPause().

• Um atividade pode frequentemente alternar entre os estados executando e pausado. Por exemplo, o método onPause() pode ser chamado quando o celular vai dormir para economizar energia e, quando o usuário ativa, o método onResume() é chamado para continuar a aplicação.

• É recomendado que o código que executa nesses dois métodos seja bem leve e rápido, sendo que pode ser executado várias vezes.

Activity

Ciclo de vida de uma Activity

(19)

• Criaremos uma app para demostrar as chamadas dos métodos que controlam o ciclo de vida. Quando cada método do ciclo de vida for chamado, criaremos uma mensagem para logar as chamadas.

• Essa classe vai simplesmente imprimir um log quando determinado método for chamado.

• Como o exemplo utiliza a categoria livro para identificar os logs, é necessário criar um filtro para essa categoria na janela do LogCat.

• Ao executar a aplicação no emulador, um simples texto vai aparecer na tela, que foi definido pela classe TextView no método onCreate(bundle).

• Nesse caso, não estamos interessados na parte visual da tela, e sim nos logs gerados.

Activity

Exemplo de ciclo de vida

(20)

Referências

Documentos relacionados

A lo largo del siglo XX, y especialmente después de la Segunda Guerra Mundial, se constata en las formaciones sociales capitalistas en general, aunque con variaciones

Item Qtde Unid Especificação Empresa Vencedora Valor Licitado Total. 5

“Uma vez realizada uma generalização, somente pode ser descrita como boa ou má, não como certa ou errada, uma vez que as alterações introduzidas na informação têm

Vale destacar, ainda, que, apesar de a ação de Saturnino de Brito em Passo Fundo ser mencionada pela historiografia especializada, não se dispõem de estudos aprofundados na

 Não guarde dúvidas, pergunte a sua professora, ela está à disposição (mande mensagem quando precisar). Lembre-se de tirar um tempinho para ler. A pastinha com as

A seleção portuguesa feminina de andebol de sub-20 perdeu hoje 21-20 com a Hungria, na terceira jornada do Grupo C do Mundial da categoria, a decorrer em Koprivnica, na

índios, durante o prazo de validade do Concurso Público, conforme a legislação vigente e conforme consta no Regulamento. 4.8 Os candidatos que desejarem concorrer

INDICADORES AMBIENTAIS ESSENCIAIS: UMA ANÁLISE DA SUA UTILIZAÇÃO NOS RELATÓRIOS DE SUSTENTABILIDADE DAS EMPRESAS DO SETOR DE ENERGIA ELÉTRICA SUL AMERICANO, ELABORADOS