Android pour les développeurs J2EE

Un modèle asynchrone pour les clients web


précédentsommairesuivant

VI. AVAT- Exemple 3

VI-A. Le projet

Nous nous proposons maintenant de montrer qu'il y a une vie en-dehors des tâches asynchrones et qu'on peut même alors, continuer à utiliser le modèle AVAT. C'est un peu baroque mais ça marche.

L'essentiel ayant été dit sur le modèle AVAT, nous commençons une série d'exemples courts et rapidement expliqués. Nous ne détaillons que des concepts que nous n'aurions pas encore vus. Le reste est disponible dans les codes source livrés avec ce document. Nous terminerons par une application plus complexe de client d'un service web de gestion de rendez-vous.

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

Image non disponible

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

L'application aura la même vue que dans l'exemple précédent :

Image non disponible

A l'exécution, l'action [Action_01] se contentera de renvoyer à la vue les informations que celle-ci lui aura données :

Image non disponible

VI-B. Le projet Eclipse

Le projet Eclipse de cet exemple est le suivant :

Image non disponible
  • en [1], le projet [android-ui3] 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 une vue ;
  • 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] et une classe de configuration [Config].

On notera que l'application n'a pas de tâches.

VI-C. L'action [Action_01]

L'action [Action_01] se contente de renvoyer à la vue les informations que celles-ci lui a transmises. Son code est le suivant :

 
CacherSélectionnez
  • ligne 11 : la méthode [doWork] reçoit quatre paramètres de la vue ;
  • lignes 15 : elle commence par s'assoupir 1 seconde pour simuler un travail ;
  • ligne 17 : ensuite elle renvoie à son boss (la vue) les paramètres qu'elle a reçues dans le même ordre ;
  • ligne 20 : s'il se produit une exception, celle-ci est également envoyée au boss ;
  • ligne 23 : l'action signale à son boss qu'elle a terminé son travail ;
  • ligne 27 : l'action en tant que [IBoss] doit implémenter la méthode [notifyEndOfTasks]. Ici l'action n'ayant pas de tâches, cette méthode ne sera jamais appelée.

VI-D. La vue [Vue_01]

La vue [Vue_01] est la suivante :

 
CacherSélectionnez
  • lignes 20-21 : l'action [Action_01] est appelée avec les paramètres [ urlServiceRest,nbAleas,a,b, sleepTime ] ;
  • ligne 34 : ces paramètres vont lui être renvoyées dans une notification [WORK_INFO] ;
  • lignes 45-48 : ils sont alors placés dans la liste des réponses.

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.