Tasks e Back Stack

by Paco Pomet / from beautifuldecay.com

Uma tarefa é um conjunto de activities que o usuário interagiu. Essas activities de uma tarefa são organizadas em formato da estrutura de dados pilha. Quando uma aplicação é iniciada, uma task é iniciada para aquela aplicação e a activity principal, a que é instanciada assim que a aplicação é aberta, é colocada no topo da pilha da task.

À partir disso, quando uma nova activity é aberta, ela é colocada no topo da pilha e a que estava no topo fica no segundo lugar e é pausada. A activity do topo sempre está ativa e é possível que o usuário intereja com ela, mas quando essa activity é fechada via back button por exemplo, ela é destruida, removida da pilha e a que estava em segundo lugar assume o topo, se tornando ativada e sendo possível interagir com ela.

Podem haver mais de uma task criada pela plataforma, porém, apenas uma está em foreground, ou seja, seja sendo utilizada e recebendo interações. As demais tasks estão em background e todas suas activities estão pausadas. Apenas uma activity recebe interações do usuário sempre será a activity do topo da task que está em foreground, pois as demais dessas mesma task estão também pausadas.

Uma task em foreground pode ir para o background quando o usuário clica no home button, indo para a home screen do sistema operacional ou quando uma nova task é criada dentro da própria aplicação. E outro detalhe é que uma activity pode ser estanciada mais de uma vez em uma mesma task ou em tasks diferentes.

Segue abaixo a imagem de uns desenhos que fiz sobre esse conteúdo:

tasks-e-backstack

Por fim, a documentação sucintamente deixa 4 afirmações(resumos) sobre esse assunto:

When Activity A starts Activity B, Activity A is stopped, but the system retains its state (such as scroll position and text entered into forms). If the user presses the Back button while in Activity B, Activity A resumes with its state restored.

When the user leaves a task by pressing the Home button, the current activity is stopped and its task goes into the background. The system retains the state of every activity in the task. If the user later resumes the task by selecting the launcher icon that began the task, the task comes to the foreground and resumes the activity at the top of the stack.

If the user presses the Back button, the current activity is popped from the stack and destroyed. The previous activity in the stack is resumed. When an activity is destroyed, the system does not retain the activity’s state.

Activities can be instantiated multiple times, even from other tasks.

REFERÊNCIA

http://developer.android.com/guide/components/tasks-and-back-stack.html

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s