P4 intents

Lilia Sfaxi
Lilia SfaxiDocteur-Ingénieur en Informatique - Assistante à l'INSAT
Intents
Utilisation, Exemples…
Formation Mobile
27 Aout au 1 Septembre 2015
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 1
Définition et Utilisations
•  Une application Android peut contenir plusieurs activités :
•  Une activité utilise la méthode setContentView pour s’associer
avec une interface graphique
•  Les activités sont indépendantes les unes des autres,
cependant, elles peuvent collaborer pour échanger des données
et des actions
•  Typiquement, l’une des activités est désignée comme étant la
première à être présentée à l’utilisateur quand l’application est
lancée : on l’appelle l’activité de démarrage
•  Les activités interagissent en mode asynchrone.
•  Le passage d’une activité à une autre est réalisé en demandant à
l’activité en cours d’exécuter un Intent.
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 2
Intents
Définition et Utilisations
•  Un intent est un message qui peut être utilisé pour demander une
action à partir d’un autre composant de l’application
•  Un Intent permet invoquer des Activités, des Broadcast Receivers ou
des Services. Les différentes méthodes utilisées pour appeler ces
composantes sont les suivantes :
•  startActivity(intent) : lance une activité
•  sendBroadcast(intent) : envoie un intent à tous les composants Broadcast
Receivers intéressés
•  startService(intent) ou bindService(intent, …) : communiquent avec un
service en arrière plan.
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 3
Intent
Construction d’un Intent
•  Un intent comporte des informations que le système Android utilise
•  Nom du composant à démarrer
•  Action à réaliser
•  ACTION-VIEW, ACTION_SEND…
•  Donnée
•  URI référençant la donnée sur laquelle l’action va agir
•  Catégorie
•  Information supplémentaire sur le type de composants qui va gérer l’intent
•  CATEGORY-BROWSABLE, CATEGORY-LAUNCHER…
•  Extras
•  Paires clef-valeur qui comportent des informations additionnelles pour réaliser
l’action demandée
•  Drapeaux (Flags)
•  Définissent la classe qui fonctionne comme métadonnée pour cet intent
•  Peuvent indiquer comment lancer une activité, comment la traiter une fois
lancée
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 4
Intent
Types d’Intent
•  Il existe deux types d’Intents
•  Intents Explicites:
•  Spécifient le composant à démarrer par nom (nom complet de la classe)
•  Permettent de démarrer un composant de votre propre application, car le
nom de la classe est connu
•  Exemple: démarrer une activité en réponse à l’action d’un utilisateur
•  Intents Implicites
•  Ne nomment pas un composant spécifique, mais déclarent une action à
réaliser
•  Permet à un composant d’une application d’appeler un composant d’une
autre application
•  Exemple: montrer à l’utilisateur un emplacement sur une Map
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 5
Intent
INTENTS IMPLICITES
Intents
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 6
Arguments et Utilisation
•  Les principaux arguments d’un Intent implicite sont :
•  Action : l’action à réaliser, peut être prédéfinie (ACTION_VIEW, ACTION_EDIT,
ACTION_MAIN…) ou créée par l’utilisateur.
•  Donnée : Les données principales sur lesquelles on va agir, tel que le
numéro de téléphone à appeler.
•  Il est typiquement appelé comme suit:
Intent myActivityIntent = new Intent (<action>, <donnee>) ;
startActivity (myActivityIntent) ;
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 7
Intents Implicites
Activité – 1 Activité – 2
Intent {action+ donnée}
Résultats (optionnels)
 
Comportement d’un Intent Implicite
•  Un intent implicite se comporte comme suit:
1.  Activité A crée un Intent avec une action et le passe en paramètre à
startActivity
2.  Le système Android cherchent toutes les applications pour trouver un
Intent Filter qui correspond à cet Intent
3.  Quand une correspondance est trouvée, le système démarrent l’activité
(Activity B) en invoquant sa méthode onCreate et en lui passant l’intent
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 8
Intents Implicites
IntentFilters
•  Un Intent Filter est une expression dans le fichier Manifest d’une
application qui spécifie le type d’intents que le composant veut recevoir
•  Permet aux autres activités de lancer directement votre activité en
utilisant un certain Intent
•  Si vous ne déclarez pas d’Intent Filters à votre activité, elle ne pourra
être déclenchée que par un Intent Explicite
•  Il est recommandé de ne pas déclarer d’Intent Filters pour les services,
car cela peut causer des problèmes de sécurité
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 9
Intents Implicites
Actions et Données Prédéfinies d’un Intent
Voici des exemples d’actions prédéfinies communément utilisées
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 10
Intents Implicites
Action' Donnée' Description'
ACTION_DIAL' tel:123( Affiche( le( numéroteur( téléphonique( avec( le( numéro(
(123)(rempli(
ACTION_VIEW' http://www.google.com( Affiche(la(page(Google(dans(un(navigateur.(
ACTION_EDIT' content://contacts/people/2( Edite( les( informations( sur( la( personne( dont(
l’identifiant(est(2((de(votre(carnet(d’adresse)(
ACTION_VIEW' content://contacts/people/2( Utilisé( pour( démarrer( une( activité( qui( affiche( les(
données(du(contact(numéro(2(
ACTION_VIEW' content://contacts/people( Affiche( la( liste( des( contacts,( que( l’utilisateur( peut(
parcourir.( La( sélection( d’un( contact( permet( de(
visualiser(ses(détails(dans(un(nouvel(Intent.(
(
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 11
Intent Implicite
Eviter que l’application crash si l’activité
appelée n’existe pas
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 12
Intent Implicite
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 13
Intent Implicite: Plusieurs Activités Possibles
INTENTS EXPLICITES
Intents
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 14
Arguments et Utilisation
•  Les principaux arguments d’un Intent explicite sont :
•  Le contexte déclenchant l’Intent (en général this, si on le lance à partir de
l’activité de départ, ou bien <Activity_class_name>.this)
•  La classe destination (en général <Activity_class_name>.class)
•  Il est typiquement appelé comme suit:
Intent myActivityIntent = new Intent (StartClass.this, EndClass.class) ;
startActivity (myActivityIntent) ;
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 15
Intents Explicites
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 16
Intent Explicite
Démarrer une Activité avec Résultat
•  Il est possible d’établir un lien bidirectionnel entre deux activités
grâce à un Intent
•  Pour recevoir un résultat à partir d’une autre activité, appeler
startActivityForResult au lieu de StartActivity
•  L’activité destination doit bien sûr être conçue pour renvoyer un
résultat une fois l’opération réalisée
•  Le résultat est envoyé sous forme d’Intent
•  L’activité principale le recevra dans un onActivityResult
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 17
Intents Explicites
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 18
Intent avec Résultat
Activité 1
Activité 2
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 19
Intent avec Résultat
1 sur 19

Recommandé

P5 stockage par
P5 stockageP5 stockage
P5 stockageLilia Sfaxi
5.7K vues27 diapositives
P2 éléments graphiques android par
P2 éléments graphiques androidP2 éléments graphiques android
P2 éléments graphiques androidLilia Sfaxi
7K vues24 diapositives
P3 listes et elements graphiques avancés par
P3 listes et elements graphiques avancésP3 listes et elements graphiques avancés
P3 listes et elements graphiques avancésLilia Sfaxi
6.6K vues52 diapositives
P1 introduction à android par
P1 introduction à androidP1 introduction à android
P1 introduction à androidLilia Sfaxi
6.6K vues48 diapositives
Chp5 - Applications Android par
Chp5 - Applications AndroidChp5 - Applications Android
Chp5 - Applications AndroidLilia Sfaxi
6.8K vues68 diapositives
Android-Tp4: stockage par
Android-Tp4: stockageAndroid-Tp4: stockage
Android-Tp4: stockageLilia Sfaxi
5.1K vues11 diapositives

Contenu connexe

Tendances

Chp6 - Développement iOS par
Chp6 - Développement iOSChp6 - Développement iOS
Chp6 - Développement iOSLilia Sfaxi
4.6K vues64 diapositives
Programmation sous Android par
Programmation sous AndroidProgrammation sous Android
Programmation sous AndroidOlivier Le Goaër
131.5K vues156 diapositives
Android-Tp3: fragments et menus par
Android-Tp3: fragments et menusAndroid-Tp3: fragments et menus
Android-Tp3: fragments et menusLilia Sfaxi
6.4K vues14 diapositives
Introduction a Flutter par
Introduction a FlutterIntroduction a Flutter
Introduction a FlutterChristian SUMBANG
1.6K vues10 diapositives
Android-Tp2: liste et adaptateurs par
Android-Tp2: liste et adaptateursAndroid-Tp2: liste et adaptateurs
Android-Tp2: liste et adaptateursLilia Sfaxi
7.3K vues12 diapositives
Support de cours Spring M.youssfi par
Support de cours Spring  M.youssfiSupport de cours Spring  M.youssfi
Support de cours Spring M.youssfiENSET, Université Hassan II Casablanca
97.9K vues164 diapositives

Tendances(20)

Chp6 - Développement iOS par Lilia Sfaxi
Chp6 - Développement iOSChp6 - Développement iOS
Chp6 - Développement iOS
Lilia Sfaxi4.6K vues
Android-Tp3: fragments et menus par Lilia Sfaxi
Android-Tp3: fragments et menusAndroid-Tp3: fragments et menus
Android-Tp3: fragments et menus
Lilia Sfaxi6.4K vues
Android-Tp2: liste et adaptateurs par Lilia Sfaxi
Android-Tp2: liste et adaptateursAndroid-Tp2: liste et adaptateurs
Android-Tp2: liste et adaptateurs
Lilia Sfaxi7.3K vues
cours Android.pptx par YaminaGh1
cours Android.pptxcours Android.pptx
cours Android.pptx
YaminaGh1140 vues
BigData_Chp5: Putting it all together par Lilia Sfaxi
BigData_Chp5: Putting it all togetherBigData_Chp5: Putting it all together
BigData_Chp5: Putting it all together
Lilia Sfaxi26.1K vues
Android-Tp1: éléments graphiques de base et intents par Lilia Sfaxi
Android-Tp1: éléments graphiques de base et intentsAndroid-Tp1: éléments graphiques de base et intents
Android-Tp1: éléments graphiques de base et intents
Lilia Sfaxi6.8K vues
Introduction à spring boot par Antoine Rey
Introduction à spring bootIntroduction à spring boot
Introduction à spring boot
Antoine Rey17.8K vues
Cours java avance débutant facile l'essentiel swing ,events par Houssem Hamrouni
Cours java avance débutant facile l'essentiel swing ,events Cours java avance débutant facile l'essentiel swing ,events
Cours java avance débutant facile l'essentiel swing ,events
Houssem Hamrouni1.1K vues
Android - Tp3 - intents par Lilia Sfaxi
Android - Tp3 -  intentsAndroid - Tp3 -  intents
Android - Tp3 - intents
Lilia Sfaxi159 vues

Similaire à P4 intents

My droid par
My droidMy droid
My droidWiki Info Systeme
722 vues21 diapositives
Les intents sous Android par
Les intents sous Android Les intents sous Android
Les intents sous Android Houssem Lahiani
2.5K vues10 diapositives
P6 composants avancés par
P6 composants avancésP6 composants avancés
P6 composants avancésLilia Sfaxi
6.9K vues26 diapositives
Android: Les intents par
Android: Les intentsAndroid: Les intents
Android: Les intentsMohamed BOURAOUI
960 vues17 diapositives
Cours 1 Android par
Cours 1 AndroidCours 1 Android
Cours 1 AndroidMohamed Achraf Karmous
6K vues28 diapositives
Architecture android par
Architecture androidArchitecture android
Architecture androidOCTO Technology
3.5K vues28 diapositives

Plus de Lilia Sfaxi

chp1-Intro à l'urbanisation des SI.pdf par
chp1-Intro à l'urbanisation des SI.pdfchp1-Intro à l'urbanisation des SI.pdf
chp1-Intro à l'urbanisation des SI.pdfLilia Sfaxi
431 vues58 diapositives
Plan d'études_INSAT_2022_2023.pdf par
Plan d'études_INSAT_2022_2023.pdfPlan d'études_INSAT_2022_2023.pdf
Plan d'études_INSAT_2022_2023.pdfLilia Sfaxi
1.8K vues28 diapositives
Lab3-DB_Neo4j par
Lab3-DB_Neo4jLab3-DB_Neo4j
Lab3-DB_Neo4jLilia Sfaxi
1.8K vues8 diapositives
Lab2-DB-Mongodb par
Lab2-DB-MongodbLab2-DB-Mongodb
Lab2-DB-MongodbLilia Sfaxi
989 vues4 diapositives
Lab1-DB-Cassandra par
Lab1-DB-CassandraLab1-DB-Cassandra
Lab1-DB-CassandraLilia Sfaxi
957 vues4 diapositives
TP2-UML-Correction par
TP2-UML-CorrectionTP2-UML-Correction
TP2-UML-CorrectionLilia Sfaxi
10.3K vues6 diapositives

Plus de Lilia Sfaxi(20)

chp1-Intro à l'urbanisation des SI.pdf par Lilia Sfaxi
chp1-Intro à l'urbanisation des SI.pdfchp1-Intro à l'urbanisation des SI.pdf
chp1-Intro à l'urbanisation des SI.pdf
Lilia Sfaxi431 vues
Plan d'études_INSAT_2022_2023.pdf par Lilia Sfaxi
Plan d'études_INSAT_2022_2023.pdfPlan d'études_INSAT_2022_2023.pdf
Plan d'études_INSAT_2022_2023.pdf
Lilia Sfaxi1.8K vues
TP2-UML-Correction par Lilia Sfaxi
TP2-UML-CorrectionTP2-UML-Correction
TP2-UML-Correction
Lilia Sfaxi10.3K vues
TP1-UML-Correction par Lilia Sfaxi
TP1-UML-CorrectionTP1-UML-Correction
TP1-UML-Correction
Lilia Sfaxi1.8K vues
TD3-UML-Correction par Lilia Sfaxi
TD3-UML-CorrectionTD3-UML-Correction
TD3-UML-Correction
Lilia Sfaxi1.2K vues
TD2 - UML - Correction par Lilia Sfaxi
TD2 - UML - CorrectionTD2 - UML - Correction
TD2 - UML - Correction
Lilia Sfaxi22.1K vues
TD1-UML-correction par Lilia Sfaxi
TD1-UML-correctionTD1-UML-correction
TD1-UML-correction
Lilia Sfaxi1.6K vues
Android - Tp1 - installation et démarrage par Lilia Sfaxi
Android - Tp1 -   installation et démarrageAndroid - Tp1 -   installation et démarrage
Android - Tp1 - installation et démarrage
Lilia Sfaxi185 vues
Android - Tp2 - Elements graphiques par Lilia Sfaxi
Android - Tp2 - Elements graphiques Android - Tp2 - Elements graphiques
Android - Tp2 - Elements graphiques
Lilia Sfaxi55 vues
Android - TPBonus - web services par Lilia Sfaxi
Android - TPBonus - web servicesAndroid - TPBonus - web services
Android - TPBonus - web services
Lilia Sfaxi88 vues
Android - Tp4 - graphiques avancés par Lilia Sfaxi
Android - Tp4 - graphiques avancésAndroid - Tp4 - graphiques avancés
Android - Tp4 - graphiques avancés
Lilia Sfaxi121 vues

P4 intents

  • 1. Intents Utilisation, Exemples… Formation Mobile 27 Aout au 1 Septembre 2015 Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 1
  • 2. Définition et Utilisations •  Une application Android peut contenir plusieurs activités : •  Une activité utilise la méthode setContentView pour s’associer avec une interface graphique •  Les activités sont indépendantes les unes des autres, cependant, elles peuvent collaborer pour échanger des données et des actions •  Typiquement, l’une des activités est désignée comme étant la première à être présentée à l’utilisateur quand l’application est lancée : on l’appelle l’activité de démarrage •  Les activités interagissent en mode asynchrone. •  Le passage d’une activité à une autre est réalisé en demandant à l’activité en cours d’exécuter un Intent. Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 2 Intents
  • 3. Définition et Utilisations •  Un intent est un message qui peut être utilisé pour demander une action à partir d’un autre composant de l’application •  Un Intent permet invoquer des Activités, des Broadcast Receivers ou des Services. Les différentes méthodes utilisées pour appeler ces composantes sont les suivantes : •  startActivity(intent) : lance une activité •  sendBroadcast(intent) : envoie un intent à tous les composants Broadcast Receivers intéressés •  startService(intent) ou bindService(intent, …) : communiquent avec un service en arrière plan. Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 3 Intent
  • 4. Construction d’un Intent •  Un intent comporte des informations que le système Android utilise •  Nom du composant à démarrer •  Action à réaliser •  ACTION-VIEW, ACTION_SEND… •  Donnée •  URI référençant la donnée sur laquelle l’action va agir •  Catégorie •  Information supplémentaire sur le type de composants qui va gérer l’intent •  CATEGORY-BROWSABLE, CATEGORY-LAUNCHER… •  Extras •  Paires clef-valeur qui comportent des informations additionnelles pour réaliser l’action demandée •  Drapeaux (Flags) •  Définissent la classe qui fonctionne comme métadonnée pour cet intent •  Peuvent indiquer comment lancer une activité, comment la traiter une fois lancée Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 4 Intent
  • 5. Types d’Intent •  Il existe deux types d’Intents •  Intents Explicites: •  Spécifient le composant à démarrer par nom (nom complet de la classe) •  Permettent de démarrer un composant de votre propre application, car le nom de la classe est connu •  Exemple: démarrer une activité en réponse à l’action d’un utilisateur •  Intents Implicites •  Ne nomment pas un composant spécifique, mais déclarent une action à réaliser •  Permet à un composant d’une application d’appeler un composant d’une autre application •  Exemple: montrer à l’utilisateur un emplacement sur une Map Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 5 Intent
  • 6. INTENTS IMPLICITES Intents Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 6
  • 7. Arguments et Utilisation •  Les principaux arguments d’un Intent implicite sont : •  Action : l’action à réaliser, peut être prédéfinie (ACTION_VIEW, ACTION_EDIT, ACTION_MAIN…) ou créée par l’utilisateur. •  Donnée : Les données principales sur lesquelles on va agir, tel que le numéro de téléphone à appeler. •  Il est typiquement appelé comme suit: Intent myActivityIntent = new Intent (<action>, <donnee>) ; startActivity (myActivityIntent) ; Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 7 Intents Implicites Activité – 1 Activité – 2 Intent {action+ donnée} Résultats (optionnels)  
  • 8. Comportement d’un Intent Implicite •  Un intent implicite se comporte comme suit: 1.  Activité A crée un Intent avec une action et le passe en paramètre à startActivity 2.  Le système Android cherchent toutes les applications pour trouver un Intent Filter qui correspond à cet Intent 3.  Quand une correspondance est trouvée, le système démarrent l’activité (Activity B) en invoquant sa méthode onCreate et en lui passant l’intent Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 8 Intents Implicites
  • 9. IntentFilters •  Un Intent Filter est une expression dans le fichier Manifest d’une application qui spécifie le type d’intents que le composant veut recevoir •  Permet aux autres activités de lancer directement votre activité en utilisant un certain Intent •  Si vous ne déclarez pas d’Intent Filters à votre activité, elle ne pourra être déclenchée que par un Intent Explicite •  Il est recommandé de ne pas déclarer d’Intent Filters pour les services, car cela peut causer des problèmes de sécurité Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 9 Intents Implicites
  • 10. Actions et Données Prédéfinies d’un Intent Voici des exemples d’actions prédéfinies communément utilisées Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 10 Intents Implicites Action' Donnée' Description' ACTION_DIAL' tel:123( Affiche( le( numéroteur( téléphonique( avec( le( numéro( (123)(rempli( ACTION_VIEW' http://www.google.com( Affiche(la(page(Google(dans(un(navigateur.( ACTION_EDIT' content://contacts/people/2( Edite( les( informations( sur( la( personne( dont( l’identifiant(est(2((de(votre(carnet(d’adresse)( ACTION_VIEW' content://contacts/people/2( Utilisé( pour( démarrer( une( activité( qui( affiche( les( données(du(contact(numéro(2( ACTION_VIEW' content://contacts/people( Affiche( la( liste( des( contacts,( que( l’utilisateur( peut( parcourir.( La( sélection( d’un( contact( permet( de( visualiser(ses(détails(dans(un(nouvel(Intent.( (
  • 11. Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 11 Intent Implicite Eviter que l’application crash si l’activité appelée n’existe pas
  • 13. Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 13 Intent Implicite: Plusieurs Activités Possibles
  • 14. INTENTS EXPLICITES Intents Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 14
  • 15. Arguments et Utilisation •  Les principaux arguments d’un Intent explicite sont : •  Le contexte déclenchant l’Intent (en général this, si on le lance à partir de l’activité de départ, ou bien <Activity_class_name>.this) •  La classe destination (en général <Activity_class_name>.class) •  Il est typiquement appelé comme suit: Intent myActivityIntent = new Intent (StartClass.this, EndClass.class) ; startActivity (myActivityIntent) ; Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 15 Intents Explicites
  • 17. Démarrer une Activité avec Résultat •  Il est possible d’établir un lien bidirectionnel entre deux activités grâce à un Intent •  Pour recevoir un résultat à partir d’une autre activité, appeler startActivityForResult au lieu de StartActivity •  L’activité destination doit bien sûr être conçue pour renvoyer un résultat une fois l’opération réalisée •  Le résultat est envoyé sous forme d’Intent •  L’activité principale le recevra dans un onActivityResult Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 17 Intents Explicites
  • 18. Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 18 Intent avec Résultat Activité 1 Activité 2