Middle
O que é uma Tarefa e em que casos ela é usada?
sobes.tech IA
Resposta da IA
Task é uma unidade de trabalho no Android, representando um conjunto de Activities relacionadas entre si. As Activities numa mesma Task são organizadas numa pilha (back stack) na ordem de sua abertura.
Usado para:
- Gerir o ciclo de vida da Activity: A Task determina a visibilidade e acessibilidade da Activity.
- Navegação entre aplicações: Ao iniciar uma Activity de outra aplicação, ela geralmente é colocada na sua própria Task.
- Definir o comportamento do botão "Voltar": O botão "Voltar" fecha sequencialmente as Activities na Task atual.
- Isolamento de Activities: Activities de diferentes Tasks, por padrão, não interagem diretamente.
Exemplos de uso:
- Uso normal da aplicação: Abrir diferentes telas (Activities) dentro de uma mesma Task.
- Iniciar a galeria de um messenger: A galeria abre na sua própria Task, e após selecionar uma imagem, retorna-se à Task do messenger.
- Manipulação de notificações: Abrir uma Activity a partir de uma notificação pode criar uma nova Task ou usar uma existente, dependendo das flags de intenção.
Comportamento especial da Task:
- Cada Task pode ter apenas uma Activity raiz.
- Uma nova Task é criada quando uma Activity é iniciada com a flag
FLAG_ACTIVITY_NEW_TASK. - Uma Task existente pode ser trazida para o primeiro plano se uma Activity que já faz parte dela for chamada com as flags
FLAG_ACTIVITY_SINGLE_TOPouFLAG_ACTIVITY_CLEAR_TOP.
// Exemplo de iniciar uma Activity numa nova Task
val intent = Intent(this, NewTaskActivity::class.java)
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
startActivity(intent)