2010-12-16 257 views
0

J'écris une application qui est composée de 02 composants: un service fonctionnant en arrière-plan et une interface utilisateur pour contrôler le service, visualiser les données. Je les ai mis dans une application, exécutant le service dans un processus différent dans l'activité principale. Mais lorsque l'activité est fermée, le service est également terminé. Comment puis-je le laisser fonctionner en arrière-plan lorsque l'activité est fermée?Android: comment laisser un service en cours après la fermeture des activités?

Merci à tous pour m'avoir donné la moindre idée de mes problèmes!

Cordialement,

+0

Comment lancez-vous le service? Pourriez-vous s'il vous plaît fournir un code? Habituellement, un service sera exécuté même si les activités sont fermées. – Cristian

+0

Merci pour votre réponse rapide. Voici la fonction appelée pour démarrer le service dans l'activité: void doBindService() { bindService (nouveau Intent (RemoteServiceClient.this, RemoteService.class), mConnection, Context.BIND_AUTO_CREATE); mIsBound = true; ... } – androider

Répondre

1

De la documentation Android (voir: http://developer.android.com/guide/components/services.html#Lifecycle)

Le cycle de vie du service quand il est créé quand il est détruit, peut suivre deux chemins différents:

  • Un service a démarré Le service est créé lorsqu'un autre composant appelle startService(). Le service s'exécute alors indéfiniment et doit s'arrêter en appelant stopSelf(). Un autre composant peut également arrêter le service en appelant stopService(). Lorsque le service est arrêté, le système le détruit.
  • Un service lié Le service est créé lorsqu'un autre composant (un client) appelle bindService(). Le client communique ensuite avec le service via une interface IBinder. Le client peut fermer la connexion en appelant unbindService(). Plusieurs clients peuvent se lier au même service et lorsque tous sont détachés, le système détruit le service. (Le service n'a pas besoin de s'arrêter lui-même.)