Programmation concurrente
Programmation concurrentePar défaut, un processus ne comprend qu’un seul thread, le thread principal. Tous les composants applicatifs s’exécutent dans ce thread. Afin de préserver l’expérience utilisateur, Android considère qu’une application est bloquée dès qu’elle ne répond plus pendant plus de dix secondes. L’utilisateur peut alors la détruire.
Pour éviter un tel blocage de l’application, tout traitement long, comme par exemple un téléchargement web ou un calcul intensif, doit s’effectuer dans un thread secondaire dédié, libérant le thread principal. Ce dernier peut donc se consacrer au fonctionnement global de l’application et à l’affichage de celle-ci, cette tâche s’effectuant obligatoirement dans le thread principal.
Il est possible de créer autant de threads secondaires que souhaité. Il est fortement conseillé de créer des threads plutôt que des processus, ces derniers étant de plus gros consommateurs de ressources.
Bien que non obligatoire, dans de nombreux cas, il peut être judicieux de créer des services pour y lancer des threads secondaires. En effet, le cas échéant, le système tuera prioritairement les processus comprenant des activités qui ne sont pas affichées à l’utilisateur ou des récepteurs d’événements sans activité...