09.02.2017 Views

creez-des-applications-pour-android

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

5 Concepts avancés<br />

}<br />

super.onStart();<br />

Intent mIntent = new Intent(this, MonService.class);<br />

bindService(mIntent, mConnexion, BIND_AUTO_CREATE);<br />

mBound = true ;<br />

@Override<br />

protected void onStop() {<br />

super.onStop();<br />

if(mBound) {<br />

unbindService(mConnexion);<br />

mBound = false ;<br />

}<br />

}<br />

À noter aussi que, s’il s’agit d’un service distant, alors il aura une priorité supérieure ou égale à la<br />

priorité de son client le plus important (avec la plus haute priorité). Ainsi, s’il est lié à un client<br />

qui se trouve au premier plan, il y a peu de risques qu’il soit détruit.<br />

5.2.3 Créer un service<br />

5.2.3.1 Dans le Manifest<br />

Tout d’abord, il faut déclarer le service dans le Manifest. Il peut prendre quelques attributs que<br />

vous connaissez déjà tels que <strong>android</strong>:name qui est indispensable <strong>pour</strong> préciser son identifiant,<br />

<strong>android</strong>:icon <strong>pour</strong> indiquer un drawable qui jouera le rôle d’icône, <strong>android</strong>:permission <strong>pour</strong><br />

créer une permission nécessaire à l’exécution du service ou encore <strong>android</strong>:process afin de<br />

préciser dans quel processus se lancera ce service. Encore une fois, <strong>android</strong>:name est le seul<br />

attribut indispensable :<br />

<br />

…<br />

<br />

De cette manière, le service se lancera dans un processus différent du reste de l’application et ne<br />

monopolisera pas le thread UI. Vous pouvez aussi déclarer <strong>des</strong> filtres d’intents <strong>pour</strong> savoir quels<br />

intents implicites peuvent démarrer votre service.<br />

5.2.3.2 En Java<br />

Il existe deux classes principales depuis lesquelles vous pouvez dériver <strong>pour</strong> créer un service.<br />

5.2.3.2.1 Le plus générique : Service La classe Service permet de créer un service de base.<br />

Le code sera alors exécuté dans le thread principal, alors ce sera à vous de créer un nouveau thread<br />

<strong>pour</strong> ne pas engorger le thread UI.<br />

352

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

Saved successfully!

Ooh no, something went wrong!