Accueil Médias sociaux Comment utiliser une classe AsyncTask dans votre application Android - des clichés

Comment utiliser une classe AsyncTask dans votre application Android - des clichés

Table des matières:

Vidéo: TUTO Android : Gestion des activités et communication entre activités. 2025

Vidéo: TUTO Android : Gestion des activités et communication entre activités. 2025
Anonim

Une asyncTask est ce que vous utilisez lorsque quelque chose prend trop de temps pendant l'exécution de votre application Android. Par exemple, l'utilisateur demande une page Web. Qui sait combien de temps il faut pour aller chercher la page? Le service hébergeant la page Web peut rencontrer un volume élevé. Ou l'utilisateur peut être dans un train passant par un tunnel.

Toutes sortes de choses pourraient ralentir la récupération de la page. Et pendant cette récupération, l'utilisateur peut vouloir cliquer sur des boutons, faire défiler un document ou faire autre chose qui demande une réponse de votre application.

Vous ne pouvez pas arrêter le spectacle pendant que votre application attend une page Web, récupère un calendrier Twitter ou met à jour le statut Twitter de l'utilisateur. C'est pourquoi vous codez la demande de réseau dans une asyncTask.

AsyncTask d'Android est assez polyvalent pour gérer tous les types de valeurs. En fait, la documentation définit une AsyncTask de cette façon:

android. os. AsyncTask

La définition comporte trois espaces réservés de type générique - Params, Progress et Result. Lorsque vous créez votre propre asyncTask, vous "remplissez les blancs" en spécifiant les types réels à la place de Params, Progress et Result.

Publier un nouveau tweet

Pour ajouter un tweet au nom de l'utilisateur, vous récupérez un objet Twitter (l'instance que vous avez créée avec factory.getInstance ()), et vous appelez l'instance de l'instance. méthode updateStatus. Vous ne voulez pas que cette requête réseau interrompe le flux de votre activité principale, vous devez donc placer la requête dans une asyncTask. Le nom de la tâche est MyAsyncTaskTweet. Les trois types génériques de la tâche sont les suivants: String, Void et String:

public class MyAsyncTaskTweet étend AsyncTask << Chaîne , Void , Chaîne >> { Le premier type (Chaîne) représente un tweet de 140 caractères. Le code
  • s'exécute (editTextTweet. GetText (). ToString ())

    récupère une chaîne de caractères de l'un des champs de texte de l'activité et transmet cette chaîne à MyAsyncTaskTweet. Dans MyAsyncTaskTweet, la méthode doInBackground appelle cette chaîne tweet [0] et utilise cette chaîne tweet [0] pour mettre à jour le statut de l'utilisateur.

    Le paramètre de la méthode updateStatus est un élément de tableau. En effet, dans l'en-tête de la méthode doInBackground, tweet est un paramètre varargs. Le mot varargs signifie "nombre variable d'arguments". "Vous pouvez transmettre autant de valeurs à doInBackground que vous le souhaitez. Dans le corps de la méthode, vous traitez le tweet comme s'il s'agissait d'un tableau ordinaire. La première valeur de tweet est tweet [0]. S'il y avait une deuxième valeur de tweet, ce serait tweet [1], et ainsi de suite.
    

    Le second type (Void) représente une valeur (ou des valeurs) qui marque la progression du thread d'arrière-plan dans l'achèvement de son travail.

    Comme il n'y a pas d'indicateur de progression, le nom du second type est Void.

  • En Java, la classe Void est une classe wrapper pour la valeur void. Mettez ça dans votre trou noir du néant!

    Le troisième type (Chaîne) représente une phrase telle que

    Succès!

  • ou Impossible de tweeter . La méthode doInBackground trouve la chaîne associée à l'une ou l'autre des chaînes R. succès, R. chaîne. twitter_failure, ou R. chaîne. general_failure et renvoie cette chaîne comme résultat. Ensuite, la méthode onPostExecute affiche cette chaîne dans le champ editTextTweet de l'écran. Cette image résume la manière dont les noms de types génériques influencent les types des méthodes.

    L'utilisation des types dans MyAsyncTaskTweet.

L'image ci-dessous résume comment les valeurs se déplacent d'un endroit à l'autre dans MyAsyncTaskTweet.

Le flux de valeurs dans MyAsyncTaskTweet.

Obtenir la chronologie d'un utilisateur

Si vous avez vu un AsyncTask, vous les avez tous vus! La classe MyAsyncTaskTimeline est presque identique à MyAsyncTaskTweet. Les seules différences sont les suivantes:

Dans MyAsyncTaskTweet, le paramètre transmis à doInBackground est traité comme un tweet. Mais dans MyAsyncTaskTimeline, le paramètre transmis à doInBackground est un nom d'utilisateur. Le code transmet ce nom d'utilisateur à la méthode getUserTimeline.

Dans MyAsyncTaskTweet, la valeur renvoyée par doInBackground est un message de réussite ou d'échec. Mais dans MyAsyncTaskTimeline, la valeur renvoyée par doInBackground est une chaîne complète de tweets (un scénario).

  • Le code permettant de récupérer le scénario d'un utilisateur ressemble à ceci:

  • List status = null; statuts = twitter. getUserTimeline (nom d'utilisateur [0]);

Un camarade nommé Yusuke Yamamoto a développé Twitter4J (ou du moins, Yusuke Yamamoto était le chef de projet Twitter4J), et à un moment donné, M. Yamamoto a décidé que la méthode getUserTimeline renvoie une collection de twitter4J. Objets d'état. (Chaque instance de twitter4J.Etat contient un tweet.) Ainsi, pour honorer le jeu de contrats en appelant la méthode getUserTimeline, le code déclare les statuts comme étant une collection de twitter4J. Objets d'état.

Quelques lignes plus loin dans le code, une instruction enhanced for parcourt la collection de valeurs de statuts et ajoute le texte de chaque valeur à une grande chaîne de résultats. La boucle ajoute "n" (le caractère aller-à-prochaine-ligne de Java) après chaque tweet pour faire bonne mesure. Dans la méthode onPostExecute, le code affiche la grande chaîne de résultats dans le champ textViewTimeline de l'écran.

Dans la seconde méthode doInBackground, le nom complet est twitter4j. Le statut est utilisé. Ceci est fait pour distinguer le twitter4J. Classe de statut de la propre asyncTask d'Android. Classe d'état (une classe interne de la classe AsyncTask).

Une asyncTask peut être assez compliquée. Mais lorsque vous comparez AsyncTask d'Android aux alternatives de threading à faire soi-même, l'idée d'AsyncTask n'est pas mauvaise du tout. En fait, lorsque vous vous entraînez un peu et que vous créez quelques-unes de vos propres classes AsyncTask, vous vous habituez à penser de cette façon. L'ensemble de l'entreprise commence à se sentir tout à fait naturel.

Comment utiliser une classe AsyncTask dans votre application Android - des clichés

Le choix des éditeurs

Comment travailler avec Photoshop CS6 Images brutes - mannequins

Comment travailler avec Photoshop CS6 Images brutes - mannequins

Certaines caméras capturent des images dans des formats bruts. Photoshop CS6 peut traiter ces images dans des images formatées. Il vous permet également de travailler avec eux de différentes manières que les images déjà traitées. Voici quelques détails sur le traitement des images brutes par Photoshop. Préférences Camera Raw: Voici les détails de ces préférences: Quand une Camera Raw ...

Comment utiliser Photoshop CC Fusionner vers HDR Pro - mannequins

Comment utiliser Photoshop CC Fusionner vers HDR Pro - mannequins

Lorsque vous avez les expositions de que vous voulez créer votre chef-d'œuvre HDR, vous devez les assembler en utilisant la fonction Fusionner vers HDR Pro dans Photoshop CC. Vous pouvez ouvrir Merge to HDR Pro soit dans le menu Fichier → Automatiser de Photoshop, soit vous pouvez sélectionner les images à utiliser dans Bridge et utiliser Bridge ...

Comment utiliser les masques rapides dans Photoshop CS6 - les mannequins

Comment utiliser les masques rapides dans Photoshop CS6 - les mannequins

Comme vous pouvez probablement le deviner d'après le nom , Les masques rapides de Photoshop CS6 vous permettent de créer et de modifier des sélections rapidement. Bien que vous ne créiez pas vraiment un masque de produit final en soi, la façon dont vous allez obtenir votre sélection est "semblable à un masque. "Ils sont également conviviaux, car ils vous permettent de voir votre image pendant que vous travaillez. ...

Le choix des éditeurs

Bitmap et images vectorielles dans Adobe Photoshop CS5 - mannequins

Bitmap et images vectorielles dans Adobe Photoshop CS5 - mannequins

Capacité de photoshop Creative Suite 5 à utiliser à la fois l'image bitmap et Les images vectorielles vous offrent, en tant que concepteur, des opportunités incroyables en combinant les deux technologies. Vous avez peut-être déjà découvert que Photoshop fonctionne un peu différemment de la plupart des autres applications. Pour créer ces gradations douces d'une couleur à l'autre, Photoshop tire parti des pixels. ...

Capturer des images à fusionner vers HDR Pro - mannequins

Capturer des images à fusionner vers HDR Pro - mannequins

Pour fusionner plusieurs expositions en une image HDR en utilisant Photoshop CC, vous devez avoir plusieurs expositions avec lesquelles travailler. Il y a deux façons de relever le défi: Vous pouvez prendre une série d'expositions, ou photographier une image brute et faire plusieurs copies avec différentes valeurs d'exposition. Si vous voulez absolument le meilleur ...

Modifiez le pinceau dans le panneau Outils Photoshop CS5 - les nuls

Modifiez le pinceau dans le panneau Outils Photoshop CS5 - les nuls

Regroupés dans le panneau Outils de Photoshop Creative Suite 5 sont les outils utilisés pour peindre et retoucher des images. Lorsque vous cliquez pour sélectionner différents outils de peinture, notez le menu Pinceau (deuxième à partir de la gauche) dans la barre des options. Cliquez sur la flèche pour ouvrir le sélecteur Pinceaux prédéfinis. Utilisez le curseur Diamètre principal pour ...

Le choix des éditeurs

Comment utiliser plusieurs styles avec CSS3 - mannequins

Comment utiliser plusieurs styles avec CSS3 - mannequins

Comprendre les règles d'héritage dans CSS3 vous aide à créer des sites intéressants nécessitant un minimum de maintenance. En suivant ces règles, lorsque la maintenance est requise, vous devez normalement effectuer un seul changement, plutôt que de modifier individuellement des centaines d'éléments. Cela vaut la peine d'expérimenter, pour que vous puissiez comprendre tous les effets de l'héritage ...

Comment utiliser l'éditeur HTML CoffeeCup - les nuls

Comment utiliser l'éditeur HTML CoffeeCup - les nuls

Comme outil principal des pages Web WYSIWYG, CoffeeCup HTML Editor possède toutes les fonctionnalités de base importantes dont vous avez besoin pour créer des pages Web de base. En utilisant ces fonctionnalités, vous pouvez créer et éditer des pages Web sans voir les balises HTML, glisser et déposer des liens vers d'autres sites Web sans taper l'URL ou le chemin, couper et coller ...

Comment utiliser l'espace blanc dans votre conception de site Web - les nuls

Comment utiliser l'espace blanc dans votre conception de site Web - les nuls

Pages Web qui ont des tonnes des choses emballées dans tous les coins et recoins rendent la page difficile à lire et ne donnent pas l'occasion à l'œil de se reposer. Lors de la création d'une mise en page Web, prévoyez toujours un espace libre autour de vos éléments de conception. Les espaces ouverts créent non seulement une atmosphère plus invitante ...