2012-12-28 6 views
-2

J'ai une question concernant AsyncTasks:android: AsyncTask

Dans mon projet, j'ai plusieurs classes de AsyncTask comme CustomTask1 et CustomTask2, etc., ceux que je fais un peu HTTPPOSTS et l'analyse des choses. En tant que paramètre pour les AsyncTasks, j'ai obtenu des chaînes statiques finales comme (http: // IP/"certaines commandes spéciales pour une interface Web").

En fait, je ne veux pas 4-5 classes AsyncTask, parce que beaucoup de choses sont réellement les mêmes, donc j'ai écrit le même code plusieurs fois. Ne serait-il pas préférable de coder une seule AsyncTask et d'y mettre des méthodes et de définir des valeurs statiques, qui décident quelle méthode utiliser? Le problème serait alors que j'ai également besoin de différentes valeurs de retour de la asyncTask, parfois une chaîne, parfois une liste de tableaux, comment faire cela?

la chose serait un peu plus net

merci

+0

type sécurisé et comment Nous sommes censés vous aider sans aucun code? – Houcine

+0

Je n'avais pas l'intention d'obtenir du code de votre part, mais pour avoir une idée de la façon dont je pourrais "nettoyer" mon projet – user1515520

+0

vous devriez ajouter votre code afin de vous aider avec la meilleure approche pour nettoyer votre code – Houcine

Répondre

0

Si vous avez des méthodes qui se répètent dans votre application envisager d'écrire une classe qui étend la classe d'application. En savoir plus sur ce here

+0

l'édition, le collage d'URL mobile n'est pas amusant :) –

1

Vous écrivez:

Je ne veux pas 4-5 classes AsyncTask, parce que beaucoup de choses là-bas sont en fait la même chose, donc je l'ai écrit le même code plusieurs fois ..

C'est le problème, - ne pas écrire le même code plusieurs fois, mais DOIT avoir plusieurs asyncTasks. AsyncTasks doit être utilisé comme une façade pour votre code pour chaque type de tâche contenant logique TASK-SPECIFIC seulement. Bien sûr, si ces tâches partagent les mêmes "morceaux d'algorithme", écrivez ces parties de l'algorithme en un seul endroit et exposez-les différemment à l'aide de tâches typées. Je ferais quelque chose comme:

class TaskLogicImpl //contains various task general static methods like parsing string etc... 
{ 
    static void preParseServerResponse()....... 
} 

puis créer des tâches:

class Task1 : AsyncTask<URL, Integer, List> 
{ 
    call your. TaskLogicImpl.... 
} 

Parce que chaque tâche est tapé, vous serez en mesure de renvoyer des valeurs différentes de manière

+0

oui, je sais ce que tu veux dire. Merci beaucoup! ces classes partagent vraiment les mêmes "morceaux d'algorithmes", donc je me demandais s'il serait mieux d'avoir moins de code en termes de "Style de code source" – user1515520