Programmation Android Communication entre composants

Slides:



Advertisements
Présentations similaires
Gestion de la concurrence avec Entity Framework Développement d’application avec base de données Chapitre 23 Hugo St-Louis – Automne 2015.
Advertisements

Comprendre Internet Bases théoriques et exercices pratiques, pour débutants complets... Et curieux !
C++ Les fonctions. Présentation Utilité : Dès qu'un programme dépasse la centaine de lignes de code, il est pratique de pouvoir le décomposer en plusieurs.
Les systèmes d'information 1- Une pratique quotidienne 2- Les données 3- Approche conceptuelle 4- Notion de serveur 5- Conception d'un système d'information.
SITC 10 rue de la libération Bâtiment C Neuilly-sur-Marne Processus création et envoi de newsletter changement du mot de passe.
CINI – Li115 1 Semaine 9 Algorithmes de tri ● Introduction ● Tri à bulle ● - principe ● - algorithme ● - efficacité ● Tri par sélection ● - principe, algorithme,
Marlène Côté et Christèle Charbonneau Thème: Mathématiques et univers social Les élèves seront amenés à effectuer des additions et des soustractions, de.
SQL partie 5 1 LMD create – update – primary key secondary key.
1- Introduction Sommaire Modèle Logique des Données 2- Structure 3- Traduction du MCD en MLD 4- Recap - Méthodologie.
Semaine 01 La programmation créative Introduction.
1 Identifier les composants d’un réseau local. 2 Les composants d’un réseau Des ordinateurs, appelés stations... …munis d’une carte réseau leur permettant.
La Messagerie Électronique Production Yahya+wassim Classe 8b1.
Les Bases de données Définition Architecture d’un SGBD
Exploitation de logiciels :
SanMarco – Outil MicroStrategy Manuel d’utilisation sur les fonctionnalités 27 juillet 2015.
Rappels et présentation du réseau local
Modèle objet : les classes
Introduction au Langage Pascal
L’accès au portail en deux étapes Que contient cette fiche?
Plateforme CountrySTAT Aperçu global des métadonnées dans la nouvelle plateforme CountrySTAT FORMATION DES POINTS FOCAUX SUR LE SYSTEME CountrySTAT.
DOC MYCK : Programmation
Deuxième partie : La courbe d’indifférence
Javadoc et débogueur Semaine 03 Version A17.
Collecte de données CAPI
Principes de programmation (suite)
Master Réseaux et Systèmes Distribués (RSD)
Présentation du B2i école Références : B.O. n° 42 du 16 novembre 2006
Module 6 la boîte .
Les bases de données et le modèle relationnel
Module 1.2 Prise de contact
Développement Mobile : Android
Wireshark Capture et analyse de trames IP
Présentation du B2i école Références : B.O. n° 42 du 16 novembre 2006
PROGRAMMATION INFORMATIQUE D’INGÉNIERIE II
Gestion du compte et Méthodes d’inscription
Chapitre 4 Communication entre activités, Renvoyer et récupérer les données, ListViews et Adapters Azyat Abdelilah ENSAT GSEA3 2017/2018.
Direction du système d’information et de la stratégie numérique
Structure D’une Base De Données Relationnelle
Programmation Android Debugger ses applications
Thème 5 : Mesures. Cours 1 : L’heure (1).
Formules de calculs et Fonctions. Structure des formules de calcul Commencez toujours votre calcul par le signe =, ensuite sans laisser d’espaces, placez.
Programmation Orientée Objet C# El Akel Bouchra ISMONTIC Tanger 2013/2014.
Les protocoles de la couche application Chapitre 7.
I Copyright © 2004, Oracle. Tous droits réservés. Introduction.
Bases de données sous Access. Initiation aux bases de données  Structure d’une base de données.
Chapitre2: SGBD et Datawarehouse. On pourrait se demander pourquoi ne pas utiliser un SGBD pour réaliser cette structure d'informatique décisionnelle.
Les données sur l’eau à portée de clic
Plateforme CountrySTAT Aperçu global des métadonnées dans la nouvelle plateforme CountrySTAT FORMATION DES POINTS FOCAUX SUR LE SYSTEME CountrySTAT.
Programmation Android Première application Android
Programmation Android GUI (widgets) et ressources
CountrySTAT / FENIX Aperçu globale de l’Editeur DSD dans la nouvelle plateforme CountrySTAT FORMATION DES POINTS FOCAUX SUR LE SYSTEME CountrySTAT/FENIX.
Programmation Android Composantes d’une application
Programmation Android Les listes
Réunions Lync Participer à une réunion Lync Aide-mémoire Lync 2013
Transition vers l’assignation automatique des stages à la résidence
Support de formation Administrateur Compétences
Atos, Atos et le poisson, Atos Origin et le poisson, Atos Consulting ainsi que le poisson seul sont des marques déposées d'Atos Origin SA. © 2006 Atos.
Principes de programmation (suite)
Formation « Utiliser un site Internet école »
Notions d'architecture client-serveur. Présentation de l'architecture d'un système client/serveur Des machines clientes contactent un serveur qui leur.
Présentation du site Martine Cochet.
Tableau de bord d’un système de recommandation
Collaborateurs & managers
Definition de html sommaire. Présentation de html, css et javascript Module 1.
Boulain Joris, Handouz Yassine, Regnier Fabien, Giraud Antoine
Qu’est ce qu’une page web? Comment fonctionne un site web?
App Inventor trucs Afficher une image depuis le Web ou Google Drive.
DONNÉE DE BASE QM Manuel de formation. Agenda 2  Introduction  Objectif de la formation  Données de base QM: Caractéristique de contrôle Catalogue.
THEME : LE BIOS ET LES REGISTRES. INTRODUCTION : Le fonctionnement de l’ordinateur dépend de plusieurs programmes et matériel tel que les BIOS et registres.
Support de formation Administrateur Compétences
Transcription de la présentation:

Programmation Android Communication entre composants Jérémy VINET IE-Concept 2017 Android-ComComposants_V1.0 – IE-Concept 2017

Communication entre composants Programmation Android Communication entre composants Plan Communication entre composants Introduction Intent Intent explicite Intent implicite Android-ComComposants_V1.0 – IE-Concept 2017

Introduction Il est possible de faire communiquer deux activités : Programmation Android Communication entre composants Introduction Introduction Il est possible de faire communiquer deux activités : Echange de valeurs possibles, de l’un vers l’autre et de l’autre vers la première. Il est possible que deux activités d’une même application communiquent entre elles. Il est aussi possible que deux activités inter-applications communiquent entre elles. Dans les deux cas, c’est le mécanisme d’Intent (d’intention) qui sera utilisé. Android-ComComposants_V1.0 – IE-Concept 2017

Intent Un intent est en fait un objet qui contient plusieurs champs. Programmation Android Communication entre composants Intent Intent Un intent est en fait un objet qui contient plusieurs champs. La façon dont sont renseignés ces champs détermine la nature et les objectifs de l’intent. Deux types d’intent : Intent explicite Intent implicite Composant Action Catégorie Données Type Extras Flags Android-ComComposants_V1.0 – IE-Concept 2017

Programmation Android Communication entre composants Intent Intent Pour qu'un intent soit dit « explicite », il suffit que son champ composant soit renseigné. Ce champ permet de définir le destinataire de l'intent, celui qui devra le gérer. Il est constitué de deux informations : le package où se situe le composant, ainsi que le nom du composant. Android-ComComposants_V1.0 – IE-Concept 2017

Programmation Android Communication entre composants Intent Intent À l'opposé des intents explicites se trouvent les intents « implicites ». Dans ce cas de figure, on ne connaît pas de manière précise le destinataire de l'intent. C'est pourquoi il faut s'appliquer à renseigner d'autres champs pour laisser Android déterminer qui est capable de réceptionner cet intent. Android-ComComposants_V1.0 – IE-Concept 2017

Intent Exemple d’implémentation d’un intent « explicite » Programmation Android Communication entre composants Intent Intent Exemple d’implémentation d’un intent « explicite » Android-ComComposants_V1.0 – IE-Concept 2017

Programmation Android Communication entre composants Intent Intent Pour définir un Intent, il faut au moins fournir deux informations essentielles Une action, ce qu'on désire que le destinataire fasse. Un ensemble de données, sur quelles données le destinataire doit effectuer son action. Android-ComComposants_V1.0 – IE-Concept 2017

Programmation Android Communication entre composants Intent Intent Il existe aussi d'autres informations, pas forcément obligatoires, mais qui ont aussi leur utilité propre le moment venu : La catégorie : permet d'apporter des informations supplémentaires sur l'action à exécuter et le type de composant qui devra gérer l'intent. Le type : pour indiquer quel est le type des données incluses. Normalement ce type est contenu dans les données, mais en précisant cet attribut vous pouvez désactiver cette vérification automatique et imposer un type particulier. Les extras : pour ajouter du contenu à vos intents afin de les faire circuler entre les composants. Les flags : permettent de modifier le comportement de l'intent. Android-ComComposants_V1.0 – IE-Concept 2017

Programmation Android Communication entre composants Intent Intent Le champs extra permet de contenir des données à véhiculer entre les applications. Un extra est une clé à laquelle on associe une valeur. Pour insérer un extra, il faut utiliser la méthode : Intent putExtra( String key, value) key, est la clé de l’extra. value, est la valeur à stocker (doit être un objet sérialisable) Android-ComComposants_V1.0 – IE-Concept 2017

Intent Android-ComComposants_V1.0 – IE-Concept 2017 Programmation Android Communication entre composants Intent Intent Android-ComComposants_V1.0 – IE-Concept 2017

Programmation Android Communication entre composants Intent Explicite Intent Explicite Pour créer un intent explicite, il suffit de donner un context qui appartienne au package où se trouve la classe de destination. Dans le cas d’une classe où la classe de départ appartient au même package que la classe de destination, on peut utiliser le contexte de la classe de départ. Android-ComComposants_V1.0 – IE-Concept 2017

Programmation Android Communication entre composants Intent Explicite Intent Explicite Il existe deux façons de lancer un Intent, selon que l’on veuille que le composant de destination nous renvoie une réponse ou pas. Si vous ne vous attendez pas à ce que la nouvelle activité vous renvoie un résultat, alors vous pouvez l'appeler avec : void startActivity( Intent intent) La nouvelle activité sera indépendante de celle qui la lance. Elle entreprendra un cycle de vie normal, c’est-à-dire en commençant par un onCreate. Android-ComComposants_V1.0 – IE-Concept 2017

Programmation Android Communication entre composants Intent Explicite Intent Explicite Si on souhaite un retour provenant de la seconde activité il faut lancer l’Intent en utilisant la méthode : void startActivityForResult( Intent intent, int requestCode) requestCode sera un identifiant unique différent pour chaque activité lancée par cette méthode. requestCode doit impérativement être supérieur ou égale à 0 Android-ComComposants_V1.0 – IE-Concept 2017

Programmation Android Communication entre composants Intent Explicite Intent Explicite Lorsque la seconde activité s’arrêtera, la première méthode de callback qui sera rappelée dans l’activité précédente sera : void onActivityResult( int requestCode, int resultCode, Intent data) Le requestCode sera le même que celui renseigné pour lancer l’activité. Il permet donc de s’avoir qu’elle Intent a provoqué l’appel de la méthode de callback. Android-ComComposants_V1.0 – IE-Concept 2017

Programmation Android Communication entre composants Intent Explicite Intent Explicite resultCode est un code renvoyé par l’activité pour indiquer comment l’activité s’est terminée. Activity.RESULT_OK si l’activité s’est terminée correctement. Activity.RESULT_CANCELED si il y a eu un problème ou qu’il n’y a pas eu de code de retour précisé. Par défaut le code renvoyé est Activity.RESULT_CANCELED, ce qui permet d’être informé si l’utilisateur a appuyé sur le bouton de retour avant que l’activité est finie de s’éxécuter. Data est un intent utilisé pour faire passer des données (utilisation des extra). Android-ComComposants_V1.0 – IE-Concept 2017

Programmation Android Communication entre composants Intent Explicite Intent Explicite Pour définir un code de retour dans l’activité, il faut utiliser la méthode : void setResult( int resultCode, Intent data) resultCode et data sont ceux que l’on va retrouver dans la méthode onActivityResult( int requestCode, int resultCode, Intent data) Le resultCode servira donc à vérifier que l’activité a fonctionné correctement. Android-ComComposants_V1.0 – IE-Concept 2017

Intent Explicite Android-ComComposants_V1.0 – IE-Concept 2017 Programmation Android Communication entre composants Intent Explicite Intent Explicite Android-ComComposants_V1.0 – IE-Concept 2017

Intent Explicite Android-ComComposants_V1.0 – IE-Concept 2017 Programmation Android Communication entre composants Intent Explicite Intent Explicite Android-ComComposants_V1.0 – IE-Concept 2017

Programmation Android Communication entre composants Intent Implicite Intent Implicite Envoyer une requête à un destinataire, sans savoir qui il est. Les destinataires sont soit des applications fournies par Android Calendrier Contacts SMS, … Soit par d’autres applications téléchargées sur le Play Store Facebook Twiter Snapchat, … Android-ComComposants_V1.0 – IE-Concept 2017

Programmation Android Communication entre composants Intent Implicite Intent Implicite Les Intents implicites précisent l'action qui devrait être effectuée avec éventuellement les données pour cette action. Les données sont formatées grâce aux URI (Uniform Resource Identifier). La syntaxe d'un URI peut être analysée de la manière suivante (les parties entre accolades {} sont optionnelles) : <schéma> : <information> { ? <requête> } { # <fragment> } Android-ComComposants_V1.0 – IE-Concept 2017

Programmation Android Communication entre composants Intent Implicite Intent Implicite L’action des Intent implicites est stockée dans l’Intent. Il s’agit d’une constante qui commence par « ACTION_ … » ACTION_MAIN : Pour indiquer qu’il s’agit du point d’entrée de l’application. ACTION_DIAL : Pour ouvrir le composeur de numéros téléphoniques. ACTION_SENDTO : Envoyer un message à quelqu’un. ACTION_VIEW : Permet de visionner une donnée. ACTION_WEB_SEARCH : Effectuer une recherche internet. … Android-ComComposants_V1.0 – IE-Concept 2017

Programmation Android Communication entre composants Intent Implicite Intent Implicite Android détermine qui doit répondre à un Intent donné en analysant les filtres déclarés dans le manifeste des applications. Les filtres sont les nœuds <intent-filter> qui se trouvent entre les balises <activity></activity>. Si il n’y a pas de filtre, tous les Intent implicites seront recalés lors du test. Android-ComComposants_V1.0 – IE-Concept 2017

Programmation Android Communication entre composants Intent Implicite Intent Implicite Les Intent explicites n’ayant pas de champs action, ils passent toujours le test et n’ont donc pas besoin de filtre. Il est possible d’ajouter des filtres de category afin d’affiner l’utilisation des Intent. GATEGORY_DEFAULT : traitement par défaut. CATEGORY_BROWSABLE : peut être appelé depuis un navigateur web. CATEGORY_TAB : pour les activités que l’on retrouve dans des onglets. CATEGORY_LAUNCHER : doit s’afficher dans le lanceur d’application. Android-ComComposants_V1.0 – IE-Concept 2017

Programmation Android Communication entre composants Ressources Ressources https://developer.android.com/training/basics/firstapp/starting- activity.html https://developer.android.com/guide/components/intents-filters.html https://developer.android.com/ Android-ComComposants_V1.0 – IE-Concept 2017