SlideShare une entreprise Scribd logo
1  sur  19
Télécharger pour lire hors ligne
Université Constantine 2
Dr. CHAOUCHE A.-C.
Faculté des nouvelles technologies
ahmed.chaouche@univ-constantine2.dz
– Cours 9 –
Chapitre 6 : Evènements et intentions (2/2)
Développement d’applications mobiles
2018/2019. Semestre 1
Université Constantine 2
Etudiants concernés
Faculté/Institut Département Niveau Spécialité
2018/2019. Semestre 1
Dr. CHAOUCHE A.-C.
Faculté des nouvelles technologies
ahmed.chaouche@univ-constantine2.dz
Développement d’applications mobiles
Licence 3 Technologies de l’information (TI)Nouvelles technologies IFA
Licence 3 Science de l’informatique (SCI)Nouvelles technologies IFA
– Cours 9 –
Chapitre 6 : Evènements et intentions (2/2)
Université Constantine 2 3
Prérequis
Maîtrise de Android Studio
Création et exécution d’un projet Android
Objectifs du cours
Passer d’une activité à une autre
Transférer des données entre les activités
Détecter et résoudre des exceptions
Résumé
© Dr. Chaouche A.-C.
Université Constantine 2 4
Pile des activités (1/2)
© Dr. Chaouche A.-C.
Université Constantine 2 5
Pile des activités (2/2)
© Dr. Chaouche A.-C.
Les activités sont empilées/dépilées
Empilée quand une activité démarre
Dépilée (détruite) quand on presse le bouton "BACK"
Une pression sur le bouton "HOME" ne dépile pas l'activité (passe simplement en
arrière plan)
Université Constantine 2 6
Gérer l'envoi et la réception de messages afin de faire coopérer les
activités (ou même les applications)
Déléguer une action à un composant, une application ou une activité de
l'application courante.
3 cas d’usage principaux des intents
Pour démarrer une activité :
en utilisant startActivity(Intent), l’intent décrit l’activité et ses paramètres
Pour démarrer un service :
en appellant startService(Intent), démarrer un service (application sans IHM)
Pour envoyer un broadcast :
en utilisant sendBroadcast(Intent), un broadcast est un message que toute
application peut recevoir
Intentions
© Dr. Chaouche A.-C.
Université Constantine 2 7
Donner le nom d’une action générale
Un composant d’une autre application peut traiter l’action
Le système trouve la bonne application en utilisant les intent-filters
déclarés dans le manifest
Types d'intentions (1/2)
Intent implicite
© Dr. Chaouche A.-C.
/java/MainActivity.java
...
Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:031xxxxxx"));
startActivity(intent);
Main
Intent
Système
Université Constantine 2 8
Fournir le nom de la classe de l’activité à démarrer
Les activités doivent être de la même application
Types d'intentions (2/2)
Intent explicite
© Dr. Chaouche A.-C.
/java/MainActivity.java
...
Intent intent = new Intent(this, OtherActivity.class);
startActivity(intent);
Main Other
Intent
Université Constantine 2 9
Créer une activité ModulesActivity
Après vérification des champs,
Faire le passage vers ModulesActivity
TP2b : Passage d’une activité à une autre
© Dr. Chaouche A.-C.
Université Constantine 2 10
Transfert de données
© Dr. Chaouche A.-C.
/java/OtherActivity.java
Intent intent = getIntent();
Bundle bundle = intent.getExtras();
String nom = bundle.getString("nom");
String prenom = bundle.getString("prenom");
/java/MainActivity.java
Intent intent = new Intent(this, OtherActivity.class);
Bundle bundle = new Bundle();
bundle.putString("nom", "toto");
bundle.putString("prenom", "bobo");
intent.putExtras(bundle);
startActivity(intent); Main Other
Intent
Bundle
(nom,toto)
(prenom,bobo)
Les types complexes (c-à-d les objets) doivent implémenter l’interface
Parcelable, ou Serializable
Université Constantine 2 11
Passage d’un type complexe (objet) est réalisé à travers la sérialisation
La sérialisation (Marshaling) permet de rendre un objet persistant pour
un stockage ou un échange
Sérialiser un objet consiste à le convertir en un tableau d'octets, qui
pourra être reconstitué à l'identique à la réception
Sa reconversion vers sa représentation initiale (dans la mémoire) est
appelée désérialisation (unmarshaling)
La classe de l’objet à sérialiser doit implémenter l'interface Serializable
Transfert d’objets complexes (1/2)
© Dr. Chaouche A.-C.
Obj Obj
Sérialisation Désérialisation
Réseau
Fichier
BDD
Université Constantine 2 12
Transfert d’objets complexes (2/2)
© Dr. Chaouche A.-C.
/java/OtherActivity.java
Intent intent = getIntent();
Bundle bundle = intent.getExtras();
Module m = (Module) bundle.getSerializable("obj");
/java/MainActivity.java
Module m = new Module(...);
Intent intent = new Intent(this, OtherActivity.class);
Bundle bundle = new Bundle();
bundle.putSerializable("obj", m);
intent.putExtras(bundle);
startActivity(intent);
/java/Module.java
public class Module implements Serializable {
...
}
Main Other
Intent
Bundle
(obj,[Module])
Université Constantine 2 13
Retour d’une activité
© Dr. Chaouche A.-C.
/java/OtherActivity.java
Intent intentInput = getIntent();
Bundle bundle = intentInput.getExtras();
... ... ... finish();
@Override
public void finish(){
Intent intentOutput = new Intent();
intentOutput.putExtra("result", "...");
setResult(RESULT_OK, intentOutput);
super.finish();
}
/java/MainActivity.java
Intent intentInput = new Intent(this, OtherActivity.class);
startActivityForResult(intentInput, 99);
...
protected void onActivityResult(int requestCode, int resultCode, Intent intentOutput){
if(requestCode == 99 && resultCode == RESULT_OK)){ ... }
}
Main Other
intentInput
Bundle
(result,...)
intentOutput
99
RESULT_OK
1
2
3
4
Université Constantine 2 14
Etapes :
1. Aller à Android monitor > logCat
2. S'assurer que l'appareilet l'applicationsont bien sélectionnés
3. Filtrer les Logs de type "Error"
4. Identifier l'exception et corriger le code en fonction
Détection et résolution des exceptions
© Dr. Chaouche A.-C.
4
2
1 3
Université Constantine 2 15
Faire le passage vers ModulesActivity
Transférer l'identifiant et le mot de passe dans l'Intent
Afficher l’identifiant et le mot de passe dans un TextView
TP2c : Transfert de données entre les activités
© Dr. Chaouche A.-C.
Université Constantine 2 16
Documents sont accessibles :
Plateforme e-learning de l’université Constantine 2
Lien : http://elearning.univ-constantine2.dz/
Rendus du TP 2 :
Avant le Samedi 2 décembre à 23h59
À : ac.chaouche@misc-umc.org
Nom du fichier à rendre :
DAM_TP2_G%_NOMBINOME1_NOMBINOME2.zip
(Ex : DAM_TP2_G1_CHAOUCHE_NECIBI.zip)
Le fichier zip doit contenir seulement le dossier src
Documents et Rendus
© Dr. Chaouche A.-C.
Université Constantine 2 17
Intentions :
http://vogella.developpez.com/tutoriels/android/utilisation-intents/
Sérialisation sous Android :
http://www.supinfo.com/articles/single/1550-serialisation-objet-android
Quelques liens utiles
© Dr. Chaouche A.-C.
Université Constantine 2 18
Android Developer, «Tasks and Back Stack,». Lien : https://developer.
android.com/guide/components/activities/tasks-and-back-stack.html.
Android Developer, «References - Android Plateform API 26 : Intent,». Lien:
https://developer.android.com/reference/android/content/Intent.html.
Android Developer, «Start Another Activity,». Lien : https://developer.
android.com/training/basics/firstapp/starting-activity.html.
Android Developer, «References - Android Plateform API 26 : Serializable,». Lien :
https://developer.android.com/reference/java/io/Serializable.html.
Android Developer, «References - Android Plateform API 26 : Parcelable,». Lien :
developer.android.com/reference/android/os/Parcelable.html.
C. Izuchukwu, «How to Pass Data Between Activities With Android Parcelable,» 2
Octobre 2017. Lien : https://code.tutsplus.com/tutorials/ how-to-pass-data-
between-activities-with-android-parcelable--cms-29559.
Android Developer, «Getting a Result from an Activity,». Lien :
https://developer.android.com/training/basics/intents/result.html.
Références
© Dr. Chaouche A.-C.
Université Constantine 2 19
Chapitre 7 : Vues à adaptateur et boites de dialogue
Objectifs :
Créer et manipuler des vues à adaptateur (ListView, ...)
Créer et afficher une boite de dialogue
Prochain chapitre
© Dr. Chaouche A.-C.

Contenu connexe

Tendances

Application web php5 html5 css3 bootstrap
Application web php5 html5 css3 bootstrapApplication web php5 html5 css3 bootstrap
Application web php5 html5 css3 bootstrapBassem ABCHA
 
Android - Tp3 - intents
Android - Tp3 -  intentsAndroid - Tp3 -  intents
Android - Tp3 - intentsLilia Sfaxi
 
diagramme de séquence UML
diagramme de séquence UMLdiagramme de séquence UML
diagramme de séquence UMLAmir Souissi
 
Java entreprise edition et industrialisation du génie logiciel par m.youssfi
Java entreprise edition et industrialisation du génie logiciel par m.youssfiJava entreprise edition et industrialisation du génie logiciel par m.youssfi
Java entreprise edition et industrialisation du génie logiciel par m.youssfiENSET, Université Hassan II Casablanca
 
Support du cours : Systèmes d'exploitation 2 (linux)
Support du cours : Systèmes d'exploitation 2 (linux)Support du cours : Systèmes d'exploitation 2 (linux)
Support du cours : Systèmes d'exploitation 2 (linux)Faycel Chaoua
 
Manuel des TP : Atelier Web 2
Manuel des TP : Atelier Web 2Manuel des TP : Atelier Web 2
Manuel des TP : Atelier Web 2Faycel Chaoua
 
Architecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependancesArchitecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependancesENSET, Université Hassan II Casablanca
 
Cv ines ouaz
Cv ines ouazCv ines ouaz
Cv ines ouazInes Ouaz
 
diagramme de classe
diagramme de classediagramme de classe
diagramme de classeAmir Souissi
 

Tendances (20)

Struts
StrutsStruts
Struts
 
Application web php5 html5 css3 bootstrap
Application web php5 html5 css3 bootstrapApplication web php5 html5 css3 bootstrap
Application web php5 html5 css3 bootstrap
 
Android - Tp3 - intents
Android - Tp3 -  intentsAndroid - Tp3 -  intents
Android - Tp3 - intents
 
Servlets et JSP
Servlets et JSPServlets et JSP
Servlets et JSP
 
Support developpement applications mobiles avec ionic v3 et v4
Support developpement applications mobiles avec ionic v3 et v4Support developpement applications mobiles avec ionic v3 et v4
Support developpement applications mobiles avec ionic v3 et v4
 
diagramme de séquence UML
diagramme de séquence UMLdiagramme de séquence UML
diagramme de séquence UML
 
Java entreprise edition et industrialisation du génie logiciel par m.youssfi
Java entreprise edition et industrialisation du génie logiciel par m.youssfiJava entreprise edition et industrialisation du génie logiciel par m.youssfi
Java entreprise edition et industrialisation du génie logiciel par m.youssfi
 
Support du cours : Systèmes d'exploitation 2 (linux)
Support du cours : Systèmes d'exploitation 2 (linux)Support du cours : Systèmes d'exploitation 2 (linux)
Support du cours : Systèmes d'exploitation 2 (linux)
 
Cours design pattern m youssfi partie 5 adapter
Cours design pattern m youssfi partie 5 adapterCours design pattern m youssfi partie 5 adapter
Cours design pattern m youssfi partie 5 adapter
 
Introduction àJava
Introduction àJavaIntroduction àJava
Introduction àJava
 
Support de cours technologie et application m.youssfi
Support de cours technologie et application m.youssfiSupport de cours technologie et application m.youssfi
Support de cours technologie et application m.youssfi
 
DART.pptx
DART.pptxDART.pptx
DART.pptx
 
Sécurité des Applications Web avec Json Web Token (JWT)
Sécurité des Applications Web avec Json Web Token (JWT)Sécurité des Applications Web avec Json Web Token (JWT)
Sécurité des Applications Web avec Json Web Token (JWT)
 
Cours design pattern m youssfi partie 4 composite
Cours design pattern m youssfi partie 4 compositeCours design pattern m youssfi partie 4 composite
Cours design pattern m youssfi partie 4 composite
 
Support de cours angular
Support de cours angularSupport de cours angular
Support de cours angular
 
Manuel des TP : Atelier Web 2
Manuel des TP : Atelier Web 2Manuel des TP : Atelier Web 2
Manuel des TP : Atelier Web 2
 
Cours design pattern m youssfi partie 2 observer
Cours design pattern m youssfi partie 2 observerCours design pattern m youssfi partie 2 observer
Cours design pattern m youssfi partie 2 observer
 
Architecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependancesArchitecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependances
 
Cv ines ouaz
Cv ines ouazCv ines ouaz
Cv ines ouaz
 
diagramme de classe
diagramme de classediagramme de classe
diagramme de classe
 

Similaire à Applications Android - cours 9 : Intents et transfert des données

Applications Android - Cours 2 : OS mobiles
Applications Android - Cours 2 : OS mobilesApplications Android - Cours 2 : OS mobiles
Applications Android - Cours 2 : OS mobilesAhmed-Chawki Chaouche
 
Cours design pattern m youssfi partie 1 introduction et pattern strategy
Cours design pattern m youssfi partie 1 introduction et pattern strategyCours design pattern m youssfi partie 1 introduction et pattern strategy
Cours design pattern m youssfi partie 1 introduction et pattern strategyENSET, Université Hassan II Casablanca
 
Applications Android - cours 4 : Langage Java
Applications Android - cours 4 : Langage JavaApplications Android - cours 4 : Langage Java
Applications Android - cours 4 : Langage JavaAhmed-Chawki Chaouche
 
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...ENSET, Université Hassan II Casablanca
 
Tester unitairement une application java
Tester unitairement une application javaTester unitairement une application java
Tester unitairement une application javaAntoine Rey
 
PE - Développeur d'applications multiplateformes-24 Juin-Final.pdf
PE - Développeur d'applications multiplateformes-24 Juin-Final.pdfPE - Développeur d'applications multiplateformes-24 Juin-Final.pdf
PE - Développeur d'applications multiplateformes-24 Juin-Final.pdfBinocheMf
 
PRESENTTION_DU_PROJET_DE_SUPER_021337.docx
PRESENTTION_DU_PROJET_DE_SUPER_021337.docxPRESENTTION_DU_PROJET_DE_SUPER_021337.docx
PRESENTTION_DU_PROJET_DE_SUPER_021337.docxAlbanHenovi
 
Applications Android - Cours 1 : Vers une informatique mobile et ambiante
Applications Android - Cours 1 : Vers une informatique mobile et ambianteApplications Android - Cours 1 : Vers une informatique mobile et ambiante
Applications Android - Cours 1 : Vers une informatique mobile et ambianteAhmed-Chawki Chaouche
 
Cours design pattern m youssfi partie 8 stat, template method, command , medi...
Cours design pattern m youssfi partie 8 stat, template method, command , medi...Cours design pattern m youssfi partie 8 stat, template method, command , medi...
Cours design pattern m youssfi partie 8 stat, template method, command , medi...ENSET, Université Hassan II Casablanca
 
Collecte des données métiers et constitution d'un entrepôt centrale
Collecte des données métiers et constitution d'un entrepôt centraleCollecte des données métiers et constitution d'un entrepôt centrale
Collecte des données métiers et constitution d'un entrepôt centraleoussama Hafid
 
Programmation mobile Licence 2 UKV 23-24.pdf
Programmation mobile Licence 2 UKV 23-24.pdfProgrammation mobile Licence 2 UKV 23-24.pdf
Programmation mobile Licence 2 UKV 23-24.pdfBernardKabuatila
 
2010.th16419.durand.arnaud
2010.th16419.durand.arnaud2010.th16419.durand.arnaud
2010.th16419.durand.arnaudvangogue
 
Projet carrière chelsea comeau
Projet carrière  chelsea comeauProjet carrière  chelsea comeau
Projet carrière chelsea comeaucomeauchelsea
 

Similaire à Applications Android - cours 9 : Intents et transfert des données (20)

Applications Android (Planning)
Applications Android (Planning)Applications Android (Planning)
Applications Android (Planning)
 
Applications Android - Cours 2 : OS mobiles
Applications Android - Cours 2 : OS mobilesApplications Android - Cours 2 : OS mobiles
Applications Android - Cours 2 : OS mobiles
 
Cours design pattern m youssfi partie 1 introduction et pattern strategy
Cours design pattern m youssfi partie 1 introduction et pattern strategyCours design pattern m youssfi partie 1 introduction et pattern strategy
Cours design pattern m youssfi partie 1 introduction et pattern strategy
 
Applications Android - cours 4 : Langage Java
Applications Android - cours 4 : Langage JavaApplications Android - cours 4 : Langage Java
Applications Android - cours 4 : Langage Java
 
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
 
Tester unitairement une application java
Tester unitairement une application javaTester unitairement une application java
Tester unitairement une application java
 
PE - Développeur d'applications multiplateformes-24 Juin-Final.pdf
PE - Développeur d'applications multiplateformes-24 Juin-Final.pdfPE - Développeur d'applications multiplateformes-24 Juin-Final.pdf
PE - Développeur d'applications multiplateformes-24 Juin-Final.pdf
 
cahier des charges
cahier des chargescahier des charges
cahier des charges
 
PRESENTTION_DU_PROJET_DE_SUPER_021337.docx
PRESENTTION_DU_PROJET_DE_SUPER_021337.docxPRESENTTION_DU_PROJET_DE_SUPER_021337.docx
PRESENTTION_DU_PROJET_DE_SUPER_021337.docx
 
CV BEKHTI Youcef
CV BEKHTI YoucefCV BEKHTI Youcef
CV BEKHTI Youcef
 
Applications Android - Cours 1 : Vers une informatique mobile et ambiante
Applications Android - Cours 1 : Vers une informatique mobile et ambianteApplications Android - Cours 1 : Vers une informatique mobile et ambiante
Applications Android - Cours 1 : Vers une informatique mobile et ambiante
 
Cours design pattern m youssfi partie 8 stat, template method, command , medi...
Cours design pattern m youssfi partie 8 stat, template method, command , medi...Cours design pattern m youssfi partie 8 stat, template method, command , medi...
Cours design pattern m youssfi partie 8 stat, template method, command , medi...
 
Collecte des données métiers et constitution d'un entrepôt centrale
Collecte des données métiers et constitution d'un entrepôt centraleCollecte des données métiers et constitution d'un entrepôt centrale
Collecte des données métiers et constitution d'un entrepôt centrale
 
Support de cours Spring M.youssfi
Support de cours Spring  M.youssfiSupport de cours Spring  M.youssfi
Support de cours Spring M.youssfi
 
Stage GFC Atlantic
Stage GFC AtlanticStage GFC Atlantic
Stage GFC Atlantic
 
Programmation mobile Licence 2 UKV 23-24.pdf
Programmation mobile Licence 2 UKV 23-24.pdfProgrammation mobile Licence 2 UKV 23-24.pdf
Programmation mobile Licence 2 UKV 23-24.pdf
 
2010.th16419.durand.arnaud
2010.th16419.durand.arnaud2010.th16419.durand.arnaud
2010.th16419.durand.arnaud
 
Projet carrière chelsea comeau
Projet carrière  chelsea comeauProjet carrière  chelsea comeau
Projet carrière chelsea comeau
 
Support POO Java Deuxième Partie
Support POO Java Deuxième PartieSupport POO Java Deuxième Partie
Support POO Java Deuxième Partie
 
TP_1.pdf
TP_1.pdfTP_1.pdf
TP_1.pdf
 

Dernier

Saint Georges, martyr, et la lègend du dragon.pptx
Saint Georges, martyr, et la lègend du dragon.pptxSaint Georges, martyr, et la lègend du dragon.pptx
Saint Georges, martyr, et la lègend du dragon.pptxMartin M Flynn
 
Cours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETCours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETMedBechir
 
Cours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETCours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETMedBechir
 
Guide Final de rédaction de mémoire de fin d'étude
Guide Final de rédaction de mémoire de fin d'étudeGuide Final de rédaction de mémoire de fin d'étude
Guide Final de rédaction de mémoire de fin d'étudeBenamraneMarwa
 
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptxSAID MASHATE
 
Présentation_ Didactique 1_SVT (S4) complet.pptx
Présentation_ Didactique 1_SVT (S4) complet.pptxPrésentation_ Didactique 1_SVT (S4) complet.pptx
Présentation_ Didactique 1_SVT (S4) complet.pptxrababouerdighi
 
7 PPT sue le project de fin d'étude.pptx
7 PPT sue le project de fin d'étude.pptx7 PPT sue le project de fin d'étude.pptx
7 PPT sue le project de fin d'étude.pptxrababouerdighi
 
A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.Franck Apolis
 
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .
Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .Txaruka
 
Fondation Louis Vuitton. pptx
Fondation      Louis      Vuitton.   pptxFondation      Louis      Vuitton.   pptx
Fondation Louis Vuitton. pptxTxaruka
 
Formation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipFormation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipM2i Formation
 
Evaluation du systeme d'Education. Marocpptx
Evaluation du systeme d'Education. MarocpptxEvaluation du systeme d'Education. Marocpptx
Evaluation du systeme d'Education. MarocpptxAsmaa105193
 
systeme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertsysteme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertChristianMbip
 

Dernier (15)

Saint Georges, martyr, et la lègend du dragon.pptx
Saint Georges, martyr, et la lègend du dragon.pptxSaint Georges, martyr, et la lègend du dragon.pptx
Saint Georges, martyr, et la lègend du dragon.pptx
 
Cours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETCours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSET
 
Cours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETCours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSET
 
Guide Final de rédaction de mémoire de fin d'étude
Guide Final de rédaction de mémoire de fin d'étudeGuide Final de rédaction de mémoire de fin d'étude
Guide Final de rédaction de mémoire de fin d'étude
 
Evaluación Alumnos de Ecole Victor Hugo
Evaluación Alumnos de Ecole  Victor HugoEvaluación Alumnos de Ecole  Victor Hugo
Evaluación Alumnos de Ecole Victor Hugo
 
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
 
Présentation_ Didactique 1_SVT (S4) complet.pptx
Présentation_ Didactique 1_SVT (S4) complet.pptxPrésentation_ Didactique 1_SVT (S4) complet.pptx
Présentation_ Didactique 1_SVT (S4) complet.pptx
 
7 PPT sue le project de fin d'étude.pptx
7 PPT sue le project de fin d'étude.pptx7 PPT sue le project de fin d'étude.pptx
7 PPT sue le project de fin d'étude.pptx
 
A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.
 
Pâques de Sainte Marie-Euphrasie Pelletier
Pâques de Sainte Marie-Euphrasie PelletierPâques de Sainte Marie-Euphrasie Pelletier
Pâques de Sainte Marie-Euphrasie Pelletier
 
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .
Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .
 
Fondation Louis Vuitton. pptx
Fondation      Louis      Vuitton.   pptxFondation      Louis      Vuitton.   pptx
Fondation Louis Vuitton. pptx
 
Formation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipFormation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadership
 
Evaluation du systeme d'Education. Marocpptx
Evaluation du systeme d'Education. MarocpptxEvaluation du systeme d'Education. Marocpptx
Evaluation du systeme d'Education. Marocpptx
 
systeme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertsysteme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expert
 

Applications Android - cours 9 : Intents et transfert des données

  • 1. Université Constantine 2 Dr. CHAOUCHE A.-C. Faculté des nouvelles technologies ahmed.chaouche@univ-constantine2.dz – Cours 9 – Chapitre 6 : Evènements et intentions (2/2) Développement d’applications mobiles 2018/2019. Semestre 1
  • 2. Université Constantine 2 Etudiants concernés Faculté/Institut Département Niveau Spécialité 2018/2019. Semestre 1 Dr. CHAOUCHE A.-C. Faculté des nouvelles technologies ahmed.chaouche@univ-constantine2.dz Développement d’applications mobiles Licence 3 Technologies de l’information (TI)Nouvelles technologies IFA Licence 3 Science de l’informatique (SCI)Nouvelles technologies IFA – Cours 9 – Chapitre 6 : Evènements et intentions (2/2)
  • 3. Université Constantine 2 3 Prérequis Maîtrise de Android Studio Création et exécution d’un projet Android Objectifs du cours Passer d’une activité à une autre Transférer des données entre les activités Détecter et résoudre des exceptions Résumé © Dr. Chaouche A.-C.
  • 4. Université Constantine 2 4 Pile des activités (1/2) © Dr. Chaouche A.-C.
  • 5. Université Constantine 2 5 Pile des activités (2/2) © Dr. Chaouche A.-C. Les activités sont empilées/dépilées Empilée quand une activité démarre Dépilée (détruite) quand on presse le bouton "BACK" Une pression sur le bouton "HOME" ne dépile pas l'activité (passe simplement en arrière plan)
  • 6. Université Constantine 2 6 Gérer l'envoi et la réception de messages afin de faire coopérer les activités (ou même les applications) Déléguer une action à un composant, une application ou une activité de l'application courante. 3 cas d’usage principaux des intents Pour démarrer une activité : en utilisant startActivity(Intent), l’intent décrit l’activité et ses paramètres Pour démarrer un service : en appellant startService(Intent), démarrer un service (application sans IHM) Pour envoyer un broadcast : en utilisant sendBroadcast(Intent), un broadcast est un message que toute application peut recevoir Intentions © Dr. Chaouche A.-C.
  • 7. Université Constantine 2 7 Donner le nom d’une action générale Un composant d’une autre application peut traiter l’action Le système trouve la bonne application en utilisant les intent-filters déclarés dans le manifest Types d'intentions (1/2) Intent implicite © Dr. Chaouche A.-C. /java/MainActivity.java ... Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:031xxxxxx")); startActivity(intent); Main Intent Système
  • 8. Université Constantine 2 8 Fournir le nom de la classe de l’activité à démarrer Les activités doivent être de la même application Types d'intentions (2/2) Intent explicite © Dr. Chaouche A.-C. /java/MainActivity.java ... Intent intent = new Intent(this, OtherActivity.class); startActivity(intent); Main Other Intent
  • 9. Université Constantine 2 9 Créer une activité ModulesActivity Après vérification des champs, Faire le passage vers ModulesActivity TP2b : Passage d’une activité à une autre © Dr. Chaouche A.-C.
  • 10. Université Constantine 2 10 Transfert de données © Dr. Chaouche A.-C. /java/OtherActivity.java Intent intent = getIntent(); Bundle bundle = intent.getExtras(); String nom = bundle.getString("nom"); String prenom = bundle.getString("prenom"); /java/MainActivity.java Intent intent = new Intent(this, OtherActivity.class); Bundle bundle = new Bundle(); bundle.putString("nom", "toto"); bundle.putString("prenom", "bobo"); intent.putExtras(bundle); startActivity(intent); Main Other Intent Bundle (nom,toto) (prenom,bobo) Les types complexes (c-à-d les objets) doivent implémenter l’interface Parcelable, ou Serializable
  • 11. Université Constantine 2 11 Passage d’un type complexe (objet) est réalisé à travers la sérialisation La sérialisation (Marshaling) permet de rendre un objet persistant pour un stockage ou un échange Sérialiser un objet consiste à le convertir en un tableau d'octets, qui pourra être reconstitué à l'identique à la réception Sa reconversion vers sa représentation initiale (dans la mémoire) est appelée désérialisation (unmarshaling) La classe de l’objet à sérialiser doit implémenter l'interface Serializable Transfert d’objets complexes (1/2) © Dr. Chaouche A.-C. Obj Obj Sérialisation Désérialisation Réseau Fichier BDD
  • 12. Université Constantine 2 12 Transfert d’objets complexes (2/2) © Dr. Chaouche A.-C. /java/OtherActivity.java Intent intent = getIntent(); Bundle bundle = intent.getExtras(); Module m = (Module) bundle.getSerializable("obj"); /java/MainActivity.java Module m = new Module(...); Intent intent = new Intent(this, OtherActivity.class); Bundle bundle = new Bundle(); bundle.putSerializable("obj", m); intent.putExtras(bundle); startActivity(intent); /java/Module.java public class Module implements Serializable { ... } Main Other Intent Bundle (obj,[Module])
  • 13. Université Constantine 2 13 Retour d’une activité © Dr. Chaouche A.-C. /java/OtherActivity.java Intent intentInput = getIntent(); Bundle bundle = intentInput.getExtras(); ... ... ... finish(); @Override public void finish(){ Intent intentOutput = new Intent(); intentOutput.putExtra("result", "..."); setResult(RESULT_OK, intentOutput); super.finish(); } /java/MainActivity.java Intent intentInput = new Intent(this, OtherActivity.class); startActivityForResult(intentInput, 99); ... protected void onActivityResult(int requestCode, int resultCode, Intent intentOutput){ if(requestCode == 99 && resultCode == RESULT_OK)){ ... } } Main Other intentInput Bundle (result,...) intentOutput 99 RESULT_OK 1 2 3 4
  • 14. Université Constantine 2 14 Etapes : 1. Aller à Android monitor > logCat 2. S'assurer que l'appareilet l'applicationsont bien sélectionnés 3. Filtrer les Logs de type "Error" 4. Identifier l'exception et corriger le code en fonction Détection et résolution des exceptions © Dr. Chaouche A.-C. 4 2 1 3
  • 15. Université Constantine 2 15 Faire le passage vers ModulesActivity Transférer l'identifiant et le mot de passe dans l'Intent Afficher l’identifiant et le mot de passe dans un TextView TP2c : Transfert de données entre les activités © Dr. Chaouche A.-C.
  • 16. Université Constantine 2 16 Documents sont accessibles : Plateforme e-learning de l’université Constantine 2 Lien : http://elearning.univ-constantine2.dz/ Rendus du TP 2 : Avant le Samedi 2 décembre à 23h59 À : ac.chaouche@misc-umc.org Nom du fichier à rendre : DAM_TP2_G%_NOMBINOME1_NOMBINOME2.zip (Ex : DAM_TP2_G1_CHAOUCHE_NECIBI.zip) Le fichier zip doit contenir seulement le dossier src Documents et Rendus © Dr. Chaouche A.-C.
  • 17. Université Constantine 2 17 Intentions : http://vogella.developpez.com/tutoriels/android/utilisation-intents/ Sérialisation sous Android : http://www.supinfo.com/articles/single/1550-serialisation-objet-android Quelques liens utiles © Dr. Chaouche A.-C.
  • 18. Université Constantine 2 18 Android Developer, «Tasks and Back Stack,». Lien : https://developer. android.com/guide/components/activities/tasks-and-back-stack.html. Android Developer, «References - Android Plateform API 26 : Intent,». Lien: https://developer.android.com/reference/android/content/Intent.html. Android Developer, «Start Another Activity,». Lien : https://developer. android.com/training/basics/firstapp/starting-activity.html. Android Developer, «References - Android Plateform API 26 : Serializable,». Lien : https://developer.android.com/reference/java/io/Serializable.html. Android Developer, «References - Android Plateform API 26 : Parcelable,». Lien : developer.android.com/reference/android/os/Parcelable.html. C. Izuchukwu, «How to Pass Data Between Activities With Android Parcelable,» 2 Octobre 2017. Lien : https://code.tutsplus.com/tutorials/ how-to-pass-data- between-activities-with-android-parcelable--cms-29559. Android Developer, «Getting a Result from an Activity,». Lien : https://developer.android.com/training/basics/intents/result.html. Références © Dr. Chaouche A.-C.
  • 19. Université Constantine 2 19 Chapitre 7 : Vues à adaptateur et boites de dialogue Objectifs : Créer et manipuler des vues à adaptateur (ListView, ...) Créer et afficher une boite de dialogue Prochain chapitre © Dr. Chaouche A.-C.