Académique Documents
Professionnel Documents
Culture Documents
Programmation mobile
Pr. Yassine SADQI
3
Rappel: Que peuvent faire un intent?
1. Start activities
o Exemple1: On clique un boutton est l’intent lance une nouvelle activité
o Exemple 2: On clique sur « Partager » l’intent ouvre une application qui nous permet
de poster une photo
2. Start services
o Exemple: Lancer le téléchargement d'un fichier en arrière-plan
3. Deliver broadcasts
o Exemple: Le système informe tout le monde que le téléphone se charge maintenant
2. Il existe ensuite deux façons de lancer l'intent, selon qu'on veuille que le composant
de destination nous renvoie une réponse ou pas. On s’intéresse dans cette partie au
1er cas ( sans retour).
Lancer l’activité avec la méthode:
void startActivity (Intent intent)
• Afin de demander au système Android de trouver une activité pour gérer votre demande:
1. Créer un intent
Intent intent = new Intent(action, uri);
• action: Une action est une constante qui se trouve dans la classe Intent et qui
commence toujours par « ACTION_ » suivi d'un verbe (en anglais, bien sûr) de façon
à bien faire comprendre qu'il s'agit d'une action.
2. Utiliser l’intent crée pour démarrer l'activité
startActivity(intent);
startActivity(it);
• Remarque:
osi vous appelez setData () plusieurs fois, seule la dernière valeur est
utilisée.
oUtiliser « intent extras » pour inclure des informations supplémentaires
(y compris les URI).
• En option, vous pouvez créer un objet Bundle, ajouter vos données à Bundle (ensemble),
puis ajouter le Bundle à l’intent.
• Bundle définit de nombreuses méthodes "put" pour différents types de données
primitives ainsi que des objets qui implémentent l'interface Parcelable d'Android ou
Serializable de Java.
• Exemple:
Bundle extras = new Bundle();
extras.putString(EXTRA_MESSAGE, "this is my message");
extras.putInt(EXTRA_POSITION_X, 100);
msgIntent.putExtras(extras);
startActivity(msgIntent);
21
IV.1 Notion d’état
• Dans la journée un être humain peut passer d’un état à un autre suite à un événement particulier.
Evénement
Endormi Réveillé
• Une activité Android passe également par différents états.
• Entre chaque état, le système Android appelle certaines méthodes bien spécifiques, dans un ordre
bien déterminé.Vous connaissez déjà une de ces méthodes : onCreate().
• Une Activité peut démarrer une autre Activité, par exemple, exécuter de nouvelles actions
• Les Activités sont organisées selon une pile (appelée Back ou Android Stack).
o l’Activité en cours d’exécution se situe au sommet de la pile
o lorsqu’une nouvelle Activité est démarrée, l’Activité courante est stoppée et la
nouvelle est placée au sommet de la pile et devient la seule Activité en mesure
d’interagir avec l’utilisateur
o lorsque l’Activité courante se termine, elle est dépilée et l’Activité suivante dans la pile
reprend la main
• Le cycle de vie d’une activité Android est l'ensemble des états dans lesquels une activité peut
être active au cours de sa vie, depuis sa création jusqu'à sa destruction
• Plus formellement:
o Un graphe orienté de tous les états dans lesquels une activité peut être, et les fonctions de
rappels (callbacks) associés à la transition de chaque état au suivant.
• La technique de la fonction de rappel (callbacks functions) s'inspire du principe Hollywood ou
Inversion de contrôle “Don't call me, we will call you” où l'appelant laisse ses coordonnées
pour pouvoir être rappelé par la suite.
o L'intérêt est le passage à un modèle événementiel et modulaire.
• le système Android appelle automatiquement les callbacks correspondantes en fonction des
interactions utilisateurs (cliques, …)
Pr. Yassine SADQI 25
IV.2 Notion de cycle de vie d’une activité Android
• Lorsque une activité est créée par le système Android elle entre dans l'état « Created ».
• Au fil des interactions avec l’utilisateur, une activité peut être dans un des états suivants :
1. « Active (Active/Running) » : l'activité est lancée par l'utilisateur, elle s'exécute au premier
plan ;
2. « En Pause (Paused) » : l'activité est lancée par l'utilisateur, elle s'exécute est accessible, mais
elle n'est plus au premier plan. Une notification ou une autre activité lui a volé le focus et une
partie du premier plan ;
3. « Stoppée (Stopped)» : l'activité à été lancée par l'utilisateur, mais n'est plus au premier plan
et elle est invisible. L'activité ne peut interagir avec l'utilisateur qu'avec une notification ;
4. « A repris (Resumed) » : l'activité est en cours de revenir au premier plan
5. « Morte (Destroyed)» : l'activité n'est pas lancée et supprimé de mémoire de l'appareil.
• Les modifications d'état sont déclenchées par les actions de l'utilisateur ou les
modifications de configuration (événements) telle que la rotation du périphérique.
Etat Visibilité
1) Créé (Created ) Pas encore visible
4) A repris(Resumed ) Visible
Resumed
(Visible and active) onPause()
onResume()
onResume()
Started Paused
(Visible but not (partially visible) onStop()
active)
onStart()
onStart()
Stopped
onRestart() (hidden)
onCreate()
Created onDestroy()
Destroyed
• All activities will implement onCreate(Bundle) to do their initial setup; many will also
implement onPause() to commit changes to data and otherwise prepare to stop interacting with
the user. You should always call up to your superclass when implementing these
methods.
public class Activity extends ApplicationContext {
protected void onCreate(Bundle savedInstanceState);
https://developer.android.com/guide/components/activities/activity-lifecycle
Pr. Yassine SADQI 31
TD2