Propriété de Albiri Sigue
customer 27921 at Fri Mar 11 19:19:45 +0100 2011
304 L’art du développement Android
Service avec classe
L’implémentation d’un service partage de nombreuses caractéristiques avec la construction
d’une activité. On hérite d’une classe de base fournie par Android, on redéfinit certaines
méthodes du cycle de vie et on accroche le service au système via le manifeste.
La première étape de création d’un service consiste à étendre la classe Service – en dérivant
une classe WeatherPlusService dans le cadre de notre exemple.
Tout comme les activités peuvent redéfinir les méthodes onCreate(), onResume(),
onPause() et apparentées, les implémentations de Service peuvent redéfinir trois méthodes
du cycle de vie :
1. onCreate(), qui, comme pour les activités, sera appelée lorsque le processus du
service est créé.
2. onStart(), qui est appelée lorsqu’un service est lancé manuellement par un autre
processus, ce qui est différent d’un lancement implicite par une requête IPC (voir
Chapitre 31).
3. onDestroy(), qui est appelée lorsque le service est éteint.
Voici, par exemple, la méthode onCreate() de WeatherPlusService :
@Override
public void onCreate() {
super.onCreate();
client=new DefaultHttpClient();
format=getString(R.string.url);
myLocationManager=
(LocationManager)getSystemService(Context.LOCATION_SERVICE);
myLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,
10000,
10000.0f,
onLocationChange);
singleton=this;
}
On appelle d’abord la méthode onCreate() de la superclasse afin qu’Android puisse
effectuer correctement son travail d’initialisation. Puis on crée notre HttpClient et la
chaîne de format, comme nous l’avions fait dans le projet Weather. On obtient ensuite
l’instance de LocationManager pour notre application et on lui demande de récupérer
les mises à jour à mesure que notre emplacement évolue, via LocationManager.GPS_MANAGER, qui sera détaillé au Chapitre 33.
Livre Android.book Page 304 Dimanche, 8. novembre 2009 12:23 12
Précédent

- 319/391

Suivant