Workshop AsyncTask

Page 1 sur 3Lecteur de document UniversityLib

Workshop AsyncTask

Mobile Application Development - Async Programming · notes

Browse all programmation documents

Workshop AsyncTask

Exemple :

Boucle FOR de 1000000 it rations non bloquante.

Objectif :

Comment utiliser les AsyncTask.

Contexte :

Comme son nom lindique, une AsyncTask permet de r aliser des t ches de mani re asynchrone, la

mani re de la classe Thread. Lavantage de lAsyncTask est sa simplicit dutilisation et

dimpl mentation. Le Thread secondaire est cr automatiquement et la communication entre les

diff rents Thread est simplifi e.

Advertisement

Lors du d veloppement dune application, il faut bien avoir en t te que toutes les t ches

consommatrices de ressources (requ tes http, calculs lourds, &) doivent se faire dans un Thread

s par . En effet, le syst me affiche un message derreur et ferme lapplication lorsque le Thread

principal (appel UI Thread) est bloqu trop longtemps.

Enonc :

Utiliser une AsyncTask pour la r alisation dune boucle FOR de 1000000 it rations.

Donn es :

-

-

Projet dune application avec bout de code de lAsyncTask compl ter.

Advertisement

Linterface contient :

1. Un bouton pour lancer la tache (Button : btnLaunch)

2. Un Textview explicatif.

3. Une progressBar pour lavancement du calcule (ProgressBar: pBAsync)

Etapes suivre :

On cr e une classe qui h rite dAsyncTask, et on impl mente les m thodes manquantes,

les trois param tres attendus lors de la d claration sont des types g n riques dont voici la

signification :

Advertisement

Le premier est le type des param tres fournis la t che

Le second est le type de donn es transmises durant la progression du traitement

Enfin le troisi me est le type du r sultat de la t che

Une AsyncTask doit obligatoirement impl menter la m thode doInBackground. Cest elle qui

r alisera le traitement de mani re asynchrone dans un Thread s par ,

les m thodes onPreExecute (appel e avant le traitement),

onProgressUpdate (appel e lorsque vous souhaitez afficher sa progression),

(NB :On ne doit pas appeler la m thode onProgressUpdate directement)

et onPostExecute (appel e apr s le traitement) sont optionnelles, et un appel la

m thode publishProgress permet la mise jour de la progression.

Advertisement

On fait appel notre classe de traitement dans le bouton,

NOTE: Attention, les trois m thodes (onPreExecute, onProgressUpdate et onPostExecute)

sex cutent depuis lUI Thread ! Cest dailleurs gr ce cela quelles peuvent modifier linterface. On

ne doit donc pas y effectuer de traitements lourds.

Ce qui donnera :

Bon Travail J