Pages 1 | 2
Les méthodes du cycle de vie
Le gestionnaire d'application appelle les méthodes associées
aux différentes étapes de son cycle de vie. Il appelle
en tout premier la méthode startApp() pour lancer le MIDlet.
Dans notre cas, elle rend le Display courant (lignes
17 à 19).
La second étape du cycle de vie est la suspension du MIDlet.
Cela est fait en appelant la méthode pauseApp().Cette
méthode doit libérer les ressources partagées
comme les threads ou les connexions. Dans notre exemple, nous ne
faisons rien (lignes 21 et 22).
La troisième et dernière étape consiste à
terminer et détruire le MIDlet. Pour cela, le gestionnaire
d'application appelle la méthode destroyApp(). Cette
méthode libère toutes les ressources et sauvegarde
toutes les données persistentes. Nous n'utilisons ni des
ressources ni des données persistentes, la méthode
est donc vide (lignes 24 et 25).
L'interface utilisateur
L'interface utilisateur est basée sur un composant TextBox,
similaire aux composants TextArea et TextField de l'AWT (Abstract
Window Toolkit). Il faut savoir que l'interface utilisateur d'un
MIDlet est adaptée aux caractéristiques des terminaux
mobiles légers.
Le composant TextBox
Notre interface utilisateur, en dehors d'une commande, ne comprend
qu'un seul composant, un TextBox. Ce dernier possède trois
propriétés : un libellé, un contenu initial
(c'est la valeur par défaut) et un type. Pour utiliser cet
objet, il vous suffit lors de la création du composant de
spécifier le libellé et le contenu initial. Ensuite,
vous ajoutez les commandes à la zone de saisie et demandez
au MIDlet d'écouter les événements d'action
en appelant les méthodes TextBox.setCommand et TextBox.setCommandListener.
Dans notre exemple, le texte HelloWorld apparaît dans
la zone du titre et le texte Bonjour le monde apparaît
dans la zone du contenu initial. La commande Sortie apparaît
dans la zone de commande et est associée à la touche
juste en dessous et à sa droite.
L'association des commandes aux touches
L'association des commandes aux touches est dépendante du
terminal et est gérée par le terminal selon le type
spécifié lors de la création de la commande.
La classe MIDP Command vous permet de spécifier les types
de commande : BACK, CANCEL, EXIT, HELP, ITEM, OK, SCREEN et STOP.
Dans notre exemple, la pression du bouton dont le texte figure au-dessus
appelle la méthode commandAction() et lui passe une
référence à la commande cmdExit. La
pression de la touche rouge appelle la méthode destroyApp(true).
Le MIDlet se termine alors et l'environnement retourne au gestionnaire
d'application.
La priorité
Si plusieurs commandes d'une même application ont un même
type de commande, alors la valeur de priorité fixée
détermine la manière dont va se faire l'association
des commandes aux touches. Plus la valeur de priorité est
grande, plus importante est la commande.
Concrètement, le terminal choisit l'emplacement d'une commande
selon le type de commande de même type par ordre de priorité.
Cela peut signifier que la commande de plus haute priorité
est placée de manière à ce que l'utilisateur
puisse la déclencher directement et que les commandes avec
une priorité inférieure sont placées dans un
menu.
La gestion des événements
Les événements sont gérés par la méthode
commandAction. Elle reçoit en paramètre un
objet événement qui permet d'identifier la provenance
de l'événement survenu (ligne 27).
Ensuite, elle détermine le composant dans lequel est survenu
cet événement (ligne 28).
Si c'est bien la commande Sortie qui a été
activée, alors on détruit l'application (ligne 29)
puis on notifie au gestionnaire d'application que le MIDlet est
détruit (ligne 30).
Conclusion
Cet exemple simple montre la facilité de développement
d'un MIDlet. Bien entendu, il s'agit d'un exemple trivial, mais
le développement d'un MIDlet reste bien plus simple que le
développement d'une application J2EE, tout simplement parce
que l'API MIDP est bien plus légère. Par contre, vous
devrez changer nombre de vos habitudes de développement,
tant au niveau du stockage des données que de l'interface
utilisateur.
Pages 1 | 2
|