微博开发2客户端的BaseTask以及BaseTaskPool
因为微博程序中客户端与服务器端的数据传递有时会耗时很长,所以采用多进程异步处理,就是界面UI与数据的发送接收不在一个进程里。每次数据传输的时候会开一个新的线程。 BaseTask就是这个记录异步任务属性的类 package com.app.demos.base; public class BaseTask { public static final int TASK_COMPLETE = 0; //任务完成 public static final int NETWORK_ERROR = 1; //网络错误 public static final int SHOW_LOADBAR = 2; //显示下载条 public static final int HIDE_LOADBAR = 3; //不显示下载条 public static final int SHOW_TOAST = 4; //显示Toast public static final int LOAD_IMAGE = 5; //加载图片 private int id = 0; private String name = ""; public BaseTask() {} public int getId () { return this.id; } public void setId (int id) { this.id = id; } public String getName () { return this.name; } public void setName (String name) { this.name = name; } public void onStart () { } public void onComplete () { } public void onComplete (String httpResult) { } public void onError (String error) { } public void onStop () throws Exception { } }
下面就是BaseTaskPool,任务池的相关代码。
package com.app.demos.base; import java.util.HashMap; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import android.content.Context; import com.app.demos.util.HttpUtil; import com.app.demos.util.AppClient; public class BaseTaskPool { // task thread pool static private ExecutorService taskPool; // for HttpUtil.getNetType private Context context; public BaseTaskPool (BaseUi ui) { //初始建立缓冲池 this.context = ui.getContext(); taskPool = Executors.newCachedThreadPool(); } 根据不同的需求重载了addTask方法三次 // http post task with params public void addTask (int taskId, String taskUrl, HashMap<string string> taskArgs, BaseTask baseTask, int delayTime) { baseTask.setId(taskId); try { <span>taskPool.execute(new TaskThread(context, taskUrl, taskArgs, baseTask, delayTime));</span> } catch (Exception e) { taskPool.shutdown(); } } // http post task without params public void addTask (int taskId, String taskUrl, BaseTask baseTask, int delayTime) { baseTask.setId(taskId); try { <span>taskPool.execute(new TaskThread(context, taskUrl, null, baseTask, delayTime));</span> } catch (Exception e) { taskPool.shutdown(); } } // custom task public void addTask (int taskId, BaseTask baseTask, int delayTime) { baseTask.setId(taskId); try { <span>taskPool.execute(new TaskThread(context, null, null, baseTask, delayTime));</span> } catch (Exception e) { taskPool.shutdown(); } } 异步创建任务进程 // task thread logic private class TaskThread implements Runnable { private Context context; private String taskUrl; private HashMap<string string> taskArgs; private BaseTask baseTask; private int delayTime = 0; public TaskThread(Context context, String taskUrl, HashMap<string string> taskArgs, BaseTask baseTask, int delayTime) { this.context = context; this.taskUrl = taskUrl; this.taskArgs = taskArgs; this.baseTask = baseTask; this.delayTime = delayTime; } @Override public void run() { try { baseTask.onStart(); String httpResult = null; // set delay time if (this.delayTime > 0) { Thread.sleep(this.delayTime); } try { // remote task if (this.taskUrl != null) { // init app client AppClient client = new AppClient(this.taskUrl); // 用到了上一讲的AppClient封装了基本的http 的post与get方法 if (HttpUtil.WAP_INT == HttpUtil.getNetType(context)) { client.useWap(); } // http get if (taskArgs == null) { httpResult = client.get(); // http post } else { httpResult = client.post(this.taskArgs); } } // remote task if (httpResult != null) { baseTask.onComplete(httpResult); // local task } else { baseTask.onComplete(); } } catch (Exception e) { baseTask.onError(e.getMessage()); } } catch (Exception e) { e.printStackTrace(); } finally { try { baseTask.onStop(); } catch (Exception e) { e.printStackTrace(); } } } } }</string></string></string>
以上就介绍了微博开发2客户端的BaseTask以及BaseTaskPool,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Convertir les types de données de base en chaînes à l'aide de la fonction String.valueOf() de Java Dans le développement Java, lorsque nous devons convertir les types de données de base en chaînes, une méthode courante consiste à utiliser la fonction valueOf() de la classe String. Cette fonction peut accepter les paramètres des types de données de base et renvoyer la représentation sous forme de chaîne correspondante. Dans cet article, nous explorerons comment utiliser la fonction String.valueOf() pour les conversions de types de données de base et fournirons quelques exemples de code pour

Méthode de conversion d'un tableau de caractères en chaîne : cela peut être réalisé par affectation. Utilisez la syntaxe {char a[]=" abc d\0efg ";string s=a;} pour laisser le tableau de caractères attribuer directement une valeur à la chaîne et l'exécuter. le code pour terminer la conversion.

Remplacez les caractères (chaînes) dans une chaîne à l'aide de la fonction String.replace() de Java. En Java, les chaînes sont des objets immuables, ce qui signifie qu'une fois qu'un objet chaîne est créé, sa valeur ne peut pas être modifiée. Cependant, vous pouvez rencontrer des situations dans lesquelles vous devez remplacer certains caractères ou chaînes dans une chaîne. À l'heure actuelle, nous pouvons utiliser la méthode replace() dans la classe String de Java pour implémenter le remplacement de chaîne. La méthode replace() de la classe String a deux types :

Le contexte est l'environnement et les informations d'état lorsque le programme est exécuté. Il peut inclure diverses informations, telles que la valeur des variables, la pile d'appels de fonctions, l'emplacement d'exécution du programme, etc., permettant au programme d'effectuer les correspondances. décisions basées sur différents contextes et effectuer les opérations correspondantes.

Comment utiliser le contexte pour implémenter la mise en cache des requêtes dans Go Introduction : Lors de la création d'applications Web, nous avons souvent besoin de mettre en cache les requêtes pour améliorer les performances. Dans le langage Go, nous pouvons utiliser le package de contexte pour implémenter la fonction de mise en cache des requêtes. Cet article expliquera comment utiliser le package de contexte pour implémenter la mise en cache des requêtes et fournira des exemples de code pour aider les lecteurs à mieux comprendre. Qu’est-ce que le contexte ? : En langage Go, le package de contexte fournit un moyen de passer entre plusieurs goroutines

Chaque année, avant qu'Apple ne publie une nouvelle version majeure d'iOS et de macOS, les utilisateurs peuvent télécharger la version bêta plusieurs mois à l'avance pour en faire l'expérience en premier. Étant donné que le logiciel est utilisé à la fois par le public et par les développeurs, Apple a lancé des versions développeur et publique, qui sont des versions bêta publiques des versions bêta développeur, pour les deux. Quelle est la différence entre la version développeur et la version publique d’iOS ? Littéralement parlant, la version développeur est une version bêta développeur et la version publique est une version bêta publique. La version développeur et la version publique ciblent des publics différents. La version développeur est utilisée par Apple pour les tests par les développeurs. Vous avez besoin d'un compte développeur Apple pour la télécharger et la mettre à niveau.

Bonjour à tous, aujourd'hui je vais partager avec vous les connaissances de base de Java : String. Inutile de dire l'importance de la classe String, on peut dire que c'est la classe la plus utilisée dans notre développement back-end, il est donc nécessaire d'en parler.

Utilisez la fonction String.length() de Java pour obtenir la longueur d'une chaîne. En programmation Java, la chaîne est un type de données très courant. Nous avons souvent besoin d'obtenir la longueur d'une chaîne, c'est-à-dire le nombre de caractères qu'elle contient. En Java, nous pouvons utiliser la fonction length() de la classe String pour obtenir la longueur d'une chaîne. Voici un exemple de code simple : publicclassStringLengthExample{publ
