Vous êtes sur la page 1sur 20

Développement d’applications mobiles : Activity &

Intent & Fragment

Faïssal Ouardi
ouardi@fsr.ac.ma

Faculty of Science

Master IAO : Année universitaire 2013-2014


Activity

• Elément principal et point d’entrée d’une application "VISUELLE" :


◦ Une entité visuelle complète pour un "utilisateur"
◦ Divisée en deux :
• La vue (définie en XML ou en java)
• La gestion de la vue (gestion des événements) ⇒ M V C
◦ Une Application visuelle == ∗ Activity
• Les événements d’une Activity :
◦ Gestion des événements liés à la vue (onClick · · · )
◦ Gestion du cycle de vie de l’activité
• UN Thread UI (User Interface) :
◦ Gestion du rafraîchissement
◦ Gestion des événements

2 of 4
Activity

• Elément principal et point d’entrée d’une application "VISUELLE" :


◦ Une entité visuelle complète pour un "utilisateur"
◦ Divisée en deux :
• La vue (définie en XML ou en java)
• La gestion de la vue (gestion des événements) ⇒ M V C
◦ Une Application visuelle == ∗ Activity
• Les événements d’une Activity :
◦ Gestion des événements liés à la vue (onClick · · · )
◦ Gestion du cycle de vie de l’activité
• UN Thread UI (User Interface) :
◦ Gestion du rafraîchissement
◦ Gestion des événements
◦ SEUL LE THREAD UI PEUT MODIFIER LES ELEMENTS
GRAPHIQUES

2 of 4
Activity
Cycle de vie

2 of 4
Activity
Cycle de vie

2 of 4
Activity
Code Java

2 of 4
Activity
Code Java

2 of 4
Activity
Code Java

2 of 4
Activity
Code Java

• Afficher un message dans le logger


create/restart/start/resume/pause/stop/destroy
• Plugin DDMS - LogCat
Ajouter un filtre
• Observer ces scénarios
◦ LAUNCH : create / start / resume
◦ HOME (Menu) : pause / stop
◦ RE - LAUNCH : restart / start / resume
◦ UNDO : pause / stop / destroy

2 of 4
Activity
Terminaison d’une Activity

• Cas nominal : create/ start/ resume/ pause/ stop/ restart


• Autres : killed par le système
◦ Mémoire - Changement de l’orientation
◦ Peut arriver n’importe quand
• c’est quoi killed :

3 of 4
Activity
Terminaison d’une Activity

• Cas nominal : create/ start/ resume/ pause/ stop/ restart


• Autres : killed par le système
◦ Mémoire - Changement de l’orientation
◦ Peut arriver n’importe quand
• c’est quoi killed :
◦ Application détruite (onDestroy)
◦ Mais qui sera notée comme re-exécutable (Toujours dans la liste d’activity)
◦ Si pas de Persistance → perte des données

3 of 4
Activity
Terminaison d’une Activity

• Cas nominal : create/ start/ resume/ pause/ stop/ restart


• Autres : killed par le système
◦ Mémoire - Changement de l’orientation
◦ Peut arriver n’importe quand
• c’est quoi killed :
◦ Application détruite (onDestroy)
◦ Mais qui sera notée comme re-exécutable (Toujours dans la liste d’activity)
◦ Si pas de Persistance → perte des données
• Solution :
◦ Persistance intermédiaire
◦ Mécanisme offert par Android

3 of 4
Activity
Terminaison d’une Activity

Mécanisme
• onSaveInstanceState / onRestoreInstanceState
Dans le cycle de vie :
◦ onResume /onSave / onPause / onStop / onDestroy
◦ onCreate / onStart / onRestore / onResume
◦ Déclenché uniquement si killed
• Utilisation
◦ Eviter la perte de données
♦ protected void onSaveInstanceState(Bundle state)
♦ public void onRestoreInstanceState(Bundle state)

3 of 4
Activity
Terminaison d’une Activity

Utilisation
• Objet Bundle : via un MAP (clé,valeur) : TYPE_SIMPLE
◦ state.putString(String key,TYPE_SIMPLE value)
◦ TYPE_SIMPLE state.getString(String key)
◦ Type simple, Vecteur · · ·

3 of 4
Activity
Terminaison d’une Activity

Utilisation
• Objet Bundle : via un MAP (clé,valeur) : TYPE_SIMPLE
◦ state.putString(String key,TYPE_SIMPLE value)
◦ TYPE_SIMPLE state.getString(String key)
◦ Type simple, Vecteur · · ·

3 of 4
Activity
Terminaison d’une Activity

Pour un type complexe implémenter Parcelable

3 of 4
Activity
Terminaison d’une Activity

Exemple : Hello World


• Afficher l’heure et changer l’orientation (ctrl+F12)
• Constat : perte de l’information
• Utiliser onSave / onRestore pour maintenir l’état de l’application

3 of 4
Activity
XML View

• 2 possibilités de conception :
◦ Pure JAVA
◦ XML + JAVA ⇔ Isolation des vues
• Environnement : Répertoire RES
◦ Layout : définition des éléments de Vue
◦ Menu : définition des éléments de Menu

4 of 4
Activity
XML View

• Définition de la vue
◦ Type (Balise XML) : TextView, Button, ImageView, EditView · · ·
◦ ID : Identifiant de l’objet (@+id/id_nom_vue)
• Unique dans la vue
• Générer dans la classe "R"
♦ R.id== Identifiant des objets
♦ R.layout== Identifiant des GUI XML
◦ Attributs et propriétés
• Instanciation et Création
◦ onCreate() : setContentView(int layout_id)
• ID : Lien entre XML et Objet JAVA
findViewById(int id)

4 of 4
Activity
XML View

4 of 4