Skip to content

AYRHAS6/lab8_mobile

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 

Repository files navigation

Gestion des Tâches Asynchrones

Ce lab Android démontre l'utilisation des threads et des tâches asynchrones pour maintenir une interface utilisateur fluide pendant l'exécution de processus longs.

1. La Structure Visuelle (Le XML)

L'interface est définie dans un fichier XML utilisant un LinearLayout avec une orientation verticale. Elle se compose des éléments suivants :

  • Affichage du Statut (TextView) : Situé en haut de l'écran, il informe l'utilisateur sur l'état actuel de l'application (prêt, en cours, terminé).
  • Barre de Progression (ProgressBar) : Une barre horizontale, invisible par défaut, qui devient visible pour illustrer l'avancement des calculs ou du chargement.
  • Image d'aperçu (ImageView) : Un composant destiné à afficher l'icône de l'application une fois le chargement simulé terminé.
  • Trois Boutons d'action :
    • boutLoadThread : Déclenche le processus de chargement via un Thread Java standard.
    • btnCalculAsyn : Exécute un calcul lourd en utilisant la classe AsyncTask.
    • btToast : Permet de vérifier que l'interface reste interactive pendant les opérations de fond.

2. Le Fonctionnement Logique (Le Java)

Le code Java met en œuvre deux méthodes distinctes pour la gestion des opérations en arrière-plan.

A. Le Thread Standard et le Handler (Méthode Manuelle)

Cette approche sépare strictement le travail de fond et la mise à jour graphique :

  1. Action : Lors du clic sur le bouton, un nouveau Thread (fil d'exécution secondaire) est créé.
  2. Travail de fond : Le thread simule une attente de 4 secondes via la méthode sleep, puis procède au décodage d'une image.
  3. Le Pont (Handler) : Étant donné qu'un thread secondaire ne peut pas modifier directement l'interface utilisateur, l'objet mainHandler.post(...) est utilisé pour envoyer les instructions de mise à jour au fil principal (UI Thread).

B. L'AsyncTask (Classe HeavyCalcTask)

L'AsyncTask est une structure spécialisée d'Android qui segmente le travail en quatre étapes synchronisées :

  • onPreExecute (UI Thread) : Préparation de l'interface, notamment l'affichage de la ProgressBar.
  • doInBackground (Worker Thread) : Exécution du calcul intensif (boucles mathématiques). C'est la seule étape qui s'exécute en arrière-plan sans bloquer l'affichage.
  • onProgressUpdate (UI Thread) : Mise à jour de la ProgressBar en temps réel durant le calcul (progression de 1 à 100).
  • onPostExecute (UI Thread) : Finalisation de l'opération, affichage du résultat et masquage des indicateurs de chargement.

C. La Réactivité de l'UI

L'objectif principal est démontré par le bouton Toast. Même lorsqu'un calcul lourd est en cours dans l'AsyncTask ou qu'un Thread est en attente, l'utilisateur peut cliquer sur "Display Toast". Le message apparaît instantanément, prouvant que le fil principal (Main Thread) n'est jamais saturé.

############################################################################################################################################## Video demo :

video.mp4

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages