Pourquoi utiliser le Service si elle tourne dans le même thread dans android

J'ai été en passant par Lié Service dans Android Développeur de site web. J'ai cru comprendre que le service assez mais je viens de trouver un autre moyen de connexion de service par l'Utilisation d'un Messenger classe en particulier pour le service local. Là, je suis confus. Peut-être que je suis la notion de mal.

Ici est ma compréhension de Android Service. Vous créez un service lorsque

  1. Vous souhaitez faire des travaux dans la fond.
  2. Vous voulez en faire un processus distinct.
  3. Vous souhaitez le faire tourner dans un cycle de vie qui est indépendant de l'élément qui a commencé.

La Confusion est le premier élément de la liste, la définition de l'arrière-plan. N'est-ce pas le contexte d'un thread ou processus? Je n'ai jamais pensé qu'elle puisse s'exécuter sur le thread principal.

Ici est la mise en garde de service dans le dev pages environ.

Attention: Un service s'exécute dans le thread principal de son processus d'hébergement—le service de ne pas créer son propre thread et n'est pas exécuté dans un processus séparé (sauf indication contraire). Cela signifie que, si votre service n'importe quel CPU intensive de travaux ou d'opérations de blocage (comme la lecture de MP3 ou de réseau), vous devez créer un nouveau thread dans le service pour faire ce travail. En utilisant un thread séparé, vous permettra de réduire le risque de l'Application ne Répond Pas (ANR), des erreurs et de l'application du thread principal peut rester dédié à l'interaction de l'utilisateur avec vos activités.

Questions

  1. Pourquoi choisir d'utiliser le service si la fonction de service sera de toute façon de l'exécuter sur le thread principal?
  2. Faut-il écrire un service uniquement pour bloquer l'ANR, même si le temps de travail est fait dans le thread principal? Assumer le service est uniquement pour mon application.
  3. Existe-il des cas pratiques ou des raisons pour utiliser un service comme privé et en cours d'exécution dans le même thread?
  • le but principal de ces services est qu'ils ont différents du cycle de vie de votre activité cycle de vie - donc #3 s'applique ici.
InformationsquelleAutor Jaekwan | 2015-05-19