09.02.2017 Views

creez-des-applications-pour-android

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

5 Concepts avancés<br />

— Les services sont <strong>des</strong> composants très proches <strong>des</strong> activités puisqu’ils possèdent un<br />

contexte et un cycle de vie similaire mais ne possèdent pas d’interface graphique. Ils sont<br />

donc <strong>des</strong>tinés à <strong>des</strong> travaux en arrière-plan.<br />

— Il existe deux types de services :<br />

— Les services locaux où l’activité qui lance le service et le service en lui-même appartiennent<br />

à la même application.<br />

— Les services distants où le service est lancé par l’activité d’une activité d’une autre application<br />

du système.<br />

— Le cycle de vie du service est légèrement différent selon qu’il soit lancé de manière locale<br />

ou distante.<br />

— La création d’un service se déclare dans le manifest dans un premier temps et se crée dans<br />

le code Java en étendant la classe Service ou IntentService dans un second temps.<br />

— Bien qu’il soit possible d’envoyer <strong>des</strong> notifications à partir d’une activité, les services sont<br />

particulièrement adaptés <strong>pour</strong> les lancer à la fin du traitement <strong>pour</strong> lequel ils sont <strong>des</strong>tinés,<br />

par exemple.<br />

— Les alarmes sont utiles lorsque vous avez besoin d’exécuter du code à un intervalle régulier.<br />

5.3 Le partage de contenus entre <strong>applications</strong><br />

L’avantage <strong>des</strong> bases de données, c’est qu’elles facilitent le stockage de données complexes et<br />

structurées. Cependant, le problème qu’on rencontre avec ces bases, c’est qu’il n’est pas possible<br />

d’accéder à la base de données d’une application qui ne nous appartient pas. Néanmoins, il<br />

peut arriver qu’on ait vraiment besoin de partager du contenu entre plusieurs <strong>applications</strong>. Un<br />

exemple simple et courant est de pouvoir consulter les contacts de l’utilisateur qui sont enregistrés<br />

dans l’application « Carnet d’adresses ». Ces accès aux données d’une application différente<br />

de la nôtre se font à l’aide <strong>des</strong> fournisseurs de contenu ou content providers en anglais.<br />

Les fournisseurs de contenu sont le quatrième et dernier composant <strong>des</strong> <strong>applications</strong> que nous<br />

verrons. Techniquement, un fournisseur de contenu est découpé en deux éléments distincts :<br />

— Le fournisseur de contenu, qui sera utilisé dans l’application qui distribue son contenu<br />

aux autres <strong>applications</strong>.<br />

— Un client, qui permettra aux autres <strong>applications</strong> de demander au fournisseur les informations<br />

voulues.<br />

Ensemble, les fournisseurs et les clients offrent une interface standardisée permettant l’échange<br />

sécurisé de données, ainsi que les communications inter-processus, de façon à faciliter les transactions<br />

entre <strong>applications</strong>. Ils permettent entre autres d’effectuer <strong>des</strong> copier/coller de données<br />

complexes depuis votre application vers d’autres <strong>applications</strong>.<br />

Pour être tout à fait franc, il n’est pas rare qu’une application ne développe pas son propre fournisseur<br />

de contenu, car ils ne sont nécessaires que <strong>pour</strong> <strong>des</strong> besoins bien spécifiques, mais il se<br />

<strong>pour</strong>rait bien qu’un jour vous rencontriez ce type de difficultés.<br />

[[information]] | Je reprends ici la même base de données qui représente les membres du Site du<br />

Zéro qui participent à l’écriture de ce tutoriel. N’hésitez pas à aller relire complètement le chapitre<br />

sur les bases de données afin de vous familiariser avec cette architecture et vous remémorer<br />

les différentes techniques et termes techniques, ce chapitre-là étant intimement lié au présent<br />

chapitre.<br />

364

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!