Middle
Cos'è un Task e in quali casi viene utilizzato?
sobes.tech AI
Risposta dell'AI
Task è l'unità di lavoro in Android, rappresentando un insieme di Activity correlate tra loro. Le Activity in un singolo Task sono disposte in uno stack (back stack) nell'ordine di apertura.
Utilizzato per:
- Gestire il ciclo di vita dell'Activity: Il Task determina la visibilità e l'accessibilità dell'Activity.
- Navigazione tra applicazioni: Quando si avvia un'Activity da un'altra applicazione, di solito viene inserita nel suo Task.
- Definire il comportamento del pulsante "Indietro": Il pulsante "Indietro" chiude sequenzialmente le Activity nel Task corrente.
- Isolamento delle Activity: Le Activity di diversi Task, per impostazione predefinita, non interagiscono direttamente.
Esempi di utilizzo:
- Utilizzo normale dell'app: Aprire diverse schermate (Activity) all'interno di un singolo Task.
- Avviare la galleria da un messaggio: La galleria si apre nel suo Task, e dopo aver selezionato un'immagine, si torna al Task del messaggio.
- Gestione delle notifiche: Aprire un'Activity da una notifica può creare un nuovo Task o usare uno esistente, a seconda delle flag di intent.
Comportamento speciale del Task:
- Ogni Task può avere solo una Activity radice.
- Un nuovo Task viene creato quando un'Activity viene avviata con il flag
FLAG_ACTIVITY_NEW_TASK. - Un Task esistente può essere portato in primo piano se si chiama un'Activity che ne fa già parte, con le flag
FLAG_ACTIVITY_SINGLE_TOPoFLAG_ACTIVITY_CLEAR_TOP.
// Esempio di avvio di un'Activity in un nuovo Task
val intent = Intent(this, NewTaskActivity::class.java)
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
startActivity(intent)