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.2 Les services<br />

(souvent une activité, puisque l’utilisateur s’attendra à pouvoir effectuer quelque chose). Vous<br />

pouvez aussi configurer la notification <strong>pour</strong> qu’elle s’accompagne d’un son, d’une vibration ou<br />

d’un clignotement de la LED.<br />

Les notifications sont <strong>des</strong> instances de la classe Notification. Cette classe permet de définir<br />

les propriétés de la notification, comme l’icône, le message associé, le son à jouer, les vibrations<br />

à effectuer, etc.<br />

Il existe un constructeur qui permet d’ajouter les éléments de base à une notification :<br />

Notification(int icon, CharSequence tickerText, long when) où icon est une<br />

référence à un Drawable qui sera utilisé comme icône, tickerText est le texte de type téléscripteur<br />

qui sera affiché dans la barre de statut, alors que when permet d’indiquer la date et l’heure<br />

qui accompagneront la notification. Par exemple, <strong>pour</strong> une notification lancée dès qu’on appuie<br />

sur un bouton, on <strong>pour</strong>rait avoir :<br />

// L'icône sera une petite loupe<br />

int icon = R.drawable.ic_action_search ;<br />

// Le premier titre affiché<br />

CharSequence tickerText = "Titre de la notification" ;<br />

// Daté de maintenant<br />

long when = System.currentTimeMillis();<br />

La figure suivante représente la barre de statut avant la notification.<br />

Figure 5.5 – Avant la notification<br />

La figure suivante représente la barre de statut au moment où l’on reçoit la notification.<br />

Figure 5.6 – Au moment de la notification<br />

5.2.4.2.1 Ajouter du contenu à une notification Une notification n’est pas qu’une icône<br />

et un léger texte dans la barre de statut, il est possible d’avoir plus d’informations quand on l’affiche<br />

dans son intégralité et elle doit afficher du contenu, au minimum un titre et un texte, comme<br />

à la figure suivante.<br />

De plus, il faut définir ce qui va se produire dès que l’utilisateur cliquera sur la notification. Nous<br />

allons rajouter un PendingIntent à la notification, et dès que l’utilisateur cliquera sur la notification,<br />

l’intent à l’intérieur de la notification sera déclenché.<br />

Notez bien que, si l’intent lance une activité, alors il faut lui rajouter le flag FLAG_ACTIVITY_NEW_TASK.<br />

Ces trois composants, titre, texte et PendingIntent sont à définir avec la méthode void<br />

setLatestEventInfo(Context context, CharSequence contentTitle, CharSequence<br />

contentText, PendingIntent contentIntent), où contentTitle sera le titre affiché et<br />

contentText, le texte. Par exemple, <strong>pour</strong> une notification qui fait retourner dans la même<br />

activité que celle qui a lancé la notification :<br />

357

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

Saved successfully!

Ooh no, something went wrong!