2012-01-11 5 views
1

Disons que si je devais avoir mutiple appel d'un service d'intention par startService (intentservice), va-t-il exécuter mutiple instance du service ensemble ou est-il en file d'attente?Intent Service questions

Répondre

3

si vous appelez startService plusieurs fois, et le service est déjà en cours d'exécution, sa méthode onStart sera appelé à chaque fois, onCreate va appeler une seule fois si elle est pas déjà présent. Une seule instance sera là pour le service.

voir ce documentation, ici il est clairement mentionné ci-dessous une partie

"Notez que plusieurs appels à Context.startService() ne nichent pas (si elles ne donnent lieu à plusieurs appels correspondants à onStartCommand()), donc pas combien de fois il est démarré un service sera arrêté une fois que Context.stopService() ou stopSelf() est appelé; "

+0

hey homme merci. alors quelle est la différence entre service et intentservice? comme les deux fonctionnent de la même manière juste que intentservice fonctionne sur un fil différent? – ericlee

+0

IntentService recevra les intentions, lancera un thread de travail et arrêtera le service selon le cas. alors que le service peut être exécuté tout le temps. Cela dépend de l'exigence de notre application que nous devons utiliser. – AAnkit

3

IntentService est un cas particulier de service. Il met en file d'attente les demandes et s'arrête automatiquement lorsque toutes les demandes sont traitées.

+0

esprit expliquant la partie de la demande de file d'attente? – ericlee

+0

@eyespyus: Je suis d'accord avec ericlee. Pouvez-vous expliquer la partie de la file d'attente. Y a-t-il un document qui en discute? – Ashwin

+1

Jetez un oeil ici: http://developer.android.com/guide/components/services.html#ExtendingIntentService – Moritz