Sobes.tech
Middle

Qu'est-ce qu'une tâche et dans quels cas est-elle utilisée?

sobes.tech IA

Réponse de l'IA

Task est une unité de travail dans Android, représentant un ensemble d'Activities liées entre elles. Les Activities dans une même Task sont organisées dans une pile (back stack) dans l'ordre de leur ouverture.

Utilisé pour :

  • Gérer le cycle de vie de l'Activity : La Task détermine la visibilité et l'accessibilité de l'Activity.
  • Navigation entre applications : Lorsqu'une Activity est lancée depuis une autre application, elle est généralement placée dans sa propre Task.
  • Définir le comportement du bouton "Retour" : Le bouton "Retour" ferme séquentiellement les Activities dans la Task en cours.
  • Isolation des Activities : Les Activities de différentes Tasks n'interagissent pas directement par défaut.

Exemples d'utilisation :

  • Utilisation normale de l'application : Ouvrir différentes écrans (Activities) dans le cadre d'une même Task.
  • Lancer la galerie depuis un messager : La galerie s'ouvre dans sa propre Task, et après avoir sélectionné une image, on revient à la Task du messager.
  • Gestion des notifications : Ouvrir une Activity depuis une notification peut créer une nouvelle Task ou utiliser une existante, selon les drapeaux d'intention.

Comportement particulier de la Task :

  • Chaque Task ne peut avoir qu'une seule Activity racine.
  • Une nouvelle Task est créée lorsque l'Activity est lancée avec le drapeau FLAG_ACTIVITY_NEW_TASK.
  • Une Task existante peut être portée au premier plan si une Activity qui en fait déjà partie est appelée avec le drapeau FLAG_ACTIVITY_SINGLE_TOP ou FLAG_ACTIVITY_CLEAR_TOP.
// Exemple de lancement d'une Activity dans une nouvelle Task
val intent = Intent(this, NewTaskActivity::class.java)
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
startActivity(intent)