2010-10-20 5 views

Répondre

2

Un service peut être mis en œuvre un processus distinct en fonction des besoins. Here est une bonne explication quand implémenter le service en tant que processus séparé ou en tant que composant dans une application existante (Service avec Activités dans le même processus).

12

Il est ni, plus qu'une activité est « un processus ou un fil ».

Tous les composants d'une application applications exécutées à l'intérieur d'un processus et par défaut, utiliser un fil d'application principale. Vous pouvez créer vos propres discussions au besoin.

+0

Si ce n'est pas un processus séparé, pourquoi communiquer entre l'activité et le service lié, nous devons utiliser AIDL ou Messager? –

+2

@MarcinMierzejewski: Vous ne devez pas utiliser AIDL ou 'Messenger' pour communiquer avec un service lié. Ce n'est que si ce service est dans un autre processus que vous devez utiliser des mécanismes basés sur IPC, comme AIDL. – CommonsWare

+0

Ok donc utiliser IPC pour cela dans la plupart des cas est une surcharge? –

0

Eh bien, traite des services d'accueil dans le système d'exploitation Android, il est donc pas un processus. Peut-être un coup d'oeil à la définition d'un Service pour plus de détails ...

1

Le service est pas un processus ni un fil. C'est une partie du processus et un fil conducteur. Comme tous les autres composants - le service s'exécute dans le thread principal. Disons que votre application a une activité et un service alors votre application est un processus unix qui a un identifiant de processus (pid) et s'exécute dans une instance de DVM ... génère un premier thread qui est le thread principal. Tous vos composants d'application s'exécutent dans le thread principal par défaut - vous pouvez appeler un thread séparé pour effectuer des jobs parallèles.

Questions connexes