Sommaire: Utiliser les services sous Android
2) Interface graphique
a) La vue graphique
b) Composants graphiques
c) Les évènements
3) Les services
4) Services locaux
a) Définition du service
b) A faire
c) Déclaration du service
d) A faire
5) Implémentation des listeners
a) Quelques concepts JAVA Les interfaces Les variables statiques Les Listeners
b) Les listeners sur les services d°) A faire
6) Implémentation d’un binder
7) Connexion au service
a) A faire
8) Déconnexion au service
9) Compte Rendu
Extrait du cours utiliser les services sous Android
1°) Objectif
Dans ce TP, nous allons abordé la notion de service dans l’environnement Android.
A l’instar des Activities, des Intents, les services font partie des briques essentielles d’Android. Ils ne disposent pas d’interface utilisateur mais fonctionnent en arrière plan pour une période de temps indéfinie. L’exemple le plus courant est le lecteur de musique, qui vous permet d’écouter vos mp3 sans bloquer la navigation sur internet ou consulter la liste des vos contacts. Un service peut également rapatrier des données sur internet tels que des flux RSS.
2°) Création de l’interface graphique
a°)La vue graphique
Votre application aura comme nom, les noms des deux personnes composants votre binôme.
Créer une Activity avec 4 boutons et un champ texte.
b°) Les composants graphiques
Dans la fonction onCreate de votre activité récupérer les composants graphiques grâce à la méthode findViewById. Les variables correspondants aux objets graphiques seront déclarés comme champs de la classe de votre activité.
c°) Les évènements
Sur chaque bouton, ajouter un listener pour capturer l’action d’un click que le bouton.
3°) Les services (threads, cycle de vie…)
Les services ont pour but de:
Réaliser des tâches de fond sans aucune interaction avec l’utilisateur pour une durée indéfinie.
Il existe deux type de services :
• Les services locaux (ou LocalService) qui s’exécutent dans le même processus que votre application
• Les services distants (ou RemoteService) qui s’exécutent dans un processus différent de celui de application Les services s’exécutent dans le Thread principal du processus parent. Ils doivent être déclarés dans le fichier AndroidManifest.xml:
<service android:name= ».subpackagename.ServiceName »/>
Ils doivent étendre la classe Service dont vous devrez surcharger les méthodes suivantes en fonction de vos besoins :
void onCreate(); // initialisation des ressources
void onStart(Intent intent); // SDK<2.0 la tâche de fond démarre
void onStartCommand(Intent intent, int flags, int startId); // SDK>2.0 la tâche de fond
démarre
void onDestroy(); // libération des ressources
4°) Services locaux (LocalService)
a°) Définition du service
Un service Local n’est accessible que par les Activity de l’application.
Pour l’exemple, notre service initialise un Timer et une tâche qui sera exécutée toutes les minutes.
Nous allons créer une classe héritant de Service et surcharger les méthodes onCreate(), onStart() et onDestroy().
public class BackgroundService extends Service { private Timer timer ; @Override public void onCreate() { super.onCreate(); timer = new Timer(); Log.d(this.getClass().getName(), "onCreate"); } @Override public int onStartCommand(Intent intent, int flags, int startId) { Log.d(this.getClass().getName(), "onStart"); timer.scheduleAtFixedRate(new TimerTask() { public void run() { // Executer de votre tâche } }, 0, 60000); return START_NOT_STICKY; } @Override public void onDestroy() { Log.d(this.getClass().getName(), "onDestroy"); this.timer.cancel(); }
b°) A faire :
I°) Modifier votre programme pour qu’il affiche toutes les secondes dans le « Logger »
l’heure au format suivant : heure:minute:seconde. Pour se faire vous pourrez utiliser le classe Date.
…………
Cours Android: Utiliser les services sous Android (384.15 Ko) (Cours PDF)