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. 2024

Vidéo: TUTO Android : Gestion des activités et communication entre activités. 2024
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

Panneaux de caractères et de paragraphes Photoshop CC - mannequins

Panneaux de caractères et de paragraphes Photoshop CC - mannequins

Pour un contrôle incroyable sur l'apparence de votre texte dans Photoshop CC, utilisez les panneaux Caractère et Paragraphe. En plus de tous les attributs de texte disponibles dans la barre des options, les panneaux offrent un large éventail de choix. Avec eux, vous pouvez personnaliser l'apparence générale du texte ou appliquer un style typographique sophistiqué. Le ...

Options de l'outil Stylo Photoshop CS5 - mannequins

Options de l'outil Stylo Photoshop CS5 - mannequins

L'outil Plume de Photoshop Creative Suite 5 est la méthode ultime pour effectuer des sélections précises . Vous pouvez également l'utiliser pour créer des formes vectorielles et des chemins de détourage (silhouettes). Utilisez l'outil Stylo autant que vous le pouvez pour vraiment maîtriser ses capacités. Si vous ne l'utilisez pas régulièrement, cela vous semblera gênant, bien que ...

Modes de fusion photoshop CC - mannequins

Modes de fusion photoshop CC - mannequins

Modes de fusion dans Photoshop CC déterminent l'interaction des pixels d'une couche avec les pixels des couches inférieures et comment les outils de peinture interagissent avec les pixels déjà présents sur le calque actif et les calques ci-dessous. Normal: Normal est le mode de fusion par défaut pour les nouveaux calques et les outils de peinture de base. Selon l'opacité, le pixel supérieur ...

Le choix des éditeurs

Psychologie Sujets à étudier pour le test d'analogie de Miller (MAT) - dummies

Psychologie Sujets à étudier pour le test d'analogie de Miller (MAT) - dummies

Psychologie est une autre catégorie mineure qui peut apparaître sur le test Analogies Miller (MAT). Ne vous inquiétez pas - vous n'êtes pas censé ouvrir votre propre pratique de thérapie afin de passer le MAT, mais vous devriez vous familiariser avec certains termes psychologiques communs et les personnes qui ont fait des contributions majeures dans le domaine. La ...

Acheteur Contrats d'agence pour l'examen de licence de biens immobiliers - mannequins

Acheteur Contrats d'agence pour l'examen de licence de biens immobiliers - mannequins

L'examen de permis immobilier avoir des questions sur les accords d'agence d'acheteur. Le courtage immobilier traditionnel continue de représenter principalement les vendeurs; toutefois, les acheteurs ayant pris conscience qu'ils n'étaient pas représentés dans les transactions immobilières, des contrats d'agence d'acheteurs ont été développés pour permettre à l'acheteur de devenir le principal et ainsi avoir tous les avantages ...

Après la bulle immobilière: Devenir agent immobilier - les nuls

Après la bulle immobilière: Devenir agent immobilier - les nuls

Peut-être que vous avez pensé à propos de devenir un agent immobilier, mais vous avez manqué le dernier boom immobilier. Si vous avez lu les documents, vous savez que les marchés du logement s'améliorent partout au pays. Sans la frénésie du marché animé qui a pris fin en 2007 et avec la promesse d'améliorer les ventes immobilières, maintenant ...

Le choix des éditeurs

ÉCrivez des équations dans PowerPoint 2007 - des mannequins

ÉCrivez des équations dans PowerPoint 2007 - des mannequins

Utilisez l'éditeur d'équations pour placer des équations et des expressions mathématiques sur des diapositives PowerPoint. Les équations que vous dessinez deviennent des objets PowerPoint incorporés, ce qui vous permet de les éditer sans quitter PowerPoint, même si l'éditeur d'équations est en fait un programme distinct. Suivez ces étapes pour démarrer PowerPoint Equation Editor et commencer à construire une équation ou une expression sur ...

Placer des filigranes sur des pages de document Office - des mannequins

Placer des filigranes sur des pages de document Office - des mannequins

Un filigrane est une image pâle ou un ensemble de mots sur chaque page d'un document Office. Les filigranes sont élégants et constituent l'un des outils de mise en forme les plus faciles à utiliser dans Word 2011. Pour créer un filigrane pour chaque page d'un document, accédez à l'onglet Disposition et cliquez sur ...

À L'aide de la boîte de dialogue Configurer l'affichage dans PowerPoint 2011 pour Mac - témoins

À L'aide de la boîte de dialogue Configurer l'affichage dans PowerPoint 2011 pour Mac - témoins

Dans la boîte de dialogue Configurer l'affichage dans PowerPoint, cliquez sur le bouton Configurer l'affichage dans l'onglet Diaporama du ruban Office 2011 pour Mac, ou choisissez Diaporama → Configurer l'affichage dans la barre de menus. Dans les deux cas, la boîte de dialogue Configurer l'affichage polyvalent apparaît. Choisir un type de spectacle dans PowerPoint 2011 pour Mac ...