Fil
Un thread est une unité d'exécution simultanée. Il a sa propre pile d'appels. Il existe deux méthodes pour implémenter des threads dans les applications.
La première consiste à fournir une nouvelle classe qui étend Thread et remplace sa méthode run (). L'autre consiste à fournir une nouvelle instance de Thread avec un objet exécutable lors de sa création. Un thread peut être exécuté en appelant sa méthode "start". Vous pouvez définir la "priorité" d'un thread en appelant sa méthode "setPriority (int)".
Un thread peut être utilisé si vous n'avez aucun effet dans la partie UI. Par exemple, vous appelez un service Web ou téléchargez des données, et après le téléchargement, vous les affichez sur votre écran. Ensuite, vous devez utiliser un gestionnaire avec un thread et cela compliquera votre application pour gérer toutes les réponses des threads.
Un gestionnaire vous permet d'envoyer et de traiter des objets Message et Runnable associés à MessageQueue d'un thread. Chaque fil a chaque file d'attente de messages. (Comme une liste de tâches), et le thread prendra chaque message et le traitera jusqu'à ce que la file d'attente de messages soit vide. Ainsi, lorsque le gestionnaire communique, il donne simplement un message au thread appelant et il attendra le traitement.
Si vous utilisez des threads Java, vous devez gérer les exigences suivantes dans votre propre code:
Synchronisation avec le thread principal si vous publiez les résultats sur l'interface utilisateur Pas de valeur par défaut pour l'annulation du thread Pas de pool de threads par défaut Pas de valeur par défaut pour la gestion des changements de configuration dans Android
AsyncTask
AsyncTask permet une utilisation correcte et facile du thread d'interface utilisateur. Cette classe permet d'effectuer des opérations en arrière-plan et de publier les résultats sur le thread d'interface utilisateur sans avoir à manipuler les threads et / ou les gestionnaires. Une tâche asynchrone est définie par un calcul qui s'exécute sur un thread d'arrière-plan et dont le résultat est publié sur le thread d'interface utilisateur.
AsyncTask passera par les 4 étapes suivantes:
onPreExecute ()
Appelé sur le thread de l'interface utilisateur avant l'exécution de la tâche
doInbackground (Paramètres ..)
Appelé sur le thread d'arrière-plan immédiatement après la fin de l'exécution de onPreExecute ().
onProgressUpdate (Progression ..)
Appelé sur le thread d'interface utilisateur après un appel à publishProgress (Progress ...).
onPostExecute (Résultat)
Appelé sur le thread d'interface utilisateur une fois le calcul en arrière-plan terminé.
Pourquoi devriez-vous utiliser AsyncTask?
Facile à utiliser pour un thread d'interface utilisateur. (Donc, utilisez-le lorsque le thread appelant est un thread d'interface utilisateur).
Pas besoin de manipuler les gestionnaires.