Android pour les développeurs J2EE

Un modèle asynchrone pour les clients web


précédentsommairesuivant

VIII. AVAT- Exemple 5

VIII-A. Le projet

L'application de ce nouvel exemple a elle également l'architecture suivante :

Image non disponible

La couche [AVAT] est seule et sans tâches asynchrones.

L'application a les mêmes deux vues que précédemment et fait la même chose. La différence réside dans la façon dont les informations sont passées d'une vue à l'autre.

VIII-B. Le projet Eclipse

Le projet Eclipse de cet exemple est le suivant :

Image non disponible
  • en [1], le projet [android-ui5] est un projet Maven ayant une dépendance sur le projet [android-avat] ;
  • en [2], les sources du projet :
  • le package [istia.st.avat-exemples.vues] rassemble les vues du projet, ici deux vues ;
  • le package [istia.st.avat-exemples.actions] rassemble les actions du projet, ici une action ;
  • le package [istia.st.avat-exemples.activity] contient l'activité Android [MainActivity], la fabrique d'objets [Factory], une classe de configuration [Config].

VIII-C. La vue [Vue_01]

La vue [Vue_01] est la suivante :

 
CacherSélectionnez
  • ligne 4 : on récupère une référence sur la vue [Vue_02] auprès de la fabrique (c'est un singleton) ;
  • ligne 7 : on crée une action [Action_01] dont le boss est [Vue_02] et non plus [Vue_01] ;
  • ligne 9 : c'est désormais [Vue_02] le boss. On lui indique qu'une action a démarré ;
  • lignes 11-13 : l'action [Action_01] est exécutée ;
  • ligne 15 : on demande à [Vue_02] de monitorer la fin des tâches
  • ligne 12 : on fait afficher [Vue_02]. C'est cette vue qui va récupérer les notifications envoyées par l'action.

VIII-D. La vue [Vue_02]

La vue [Vue_02] est la suivante :

 
CacherSélectionnez
  • ligne 19 : la vue gère les notifications envoyées par l'action ;
  • ligne 21 : la notification est d'abord passée à la classe parent ;
  • ligne 23 : on gère la notification [WORK_TERMINATED] ;
  • lignes 24-20 : on mémorise les informations transportées par la notification ;
  • ligne 14 : la méthode exécutée lorsque l'action [Action_01] est terminée ;
  • ligne 15 : on affiche un mesage à l'écran. On ne peut pas encore faire ce qui est fait dans [onResume] (lignes 2-11). En effet, si on le fait, on récupères des pointeurs null pour les éléments de l'interface visuelle. Cela montre que la méthode [onActivityCreated] n'a pas encore été exécutée lorsqu'arrive la notification [endOfTasks]. C'est normal. La vue [Vue_02] ne sera affichée que lorsque la méthode [Vue_01].doValider() sera terminée. Celle-ci est totalement synchrone car il n'y a pas de tâche asynchrone ici. Donc la notification [endOfTasks] arrive avant que [Vue_02] ne soit affichée.

précédentsommairesuivant

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

  

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2013 Serge Tahé. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.