J'essaye d'écrire un AsyncTask
qui prend un ImageView
et chemin vers l'image en entrée et charge l'image dans un fil d'arrière-plan. Je voulais savoir comment passer les deux ImageView
et le chemin de la AsyncTask
? le Params
argument dans le doInBackground
peut tenir un array
des données appartenant à la même classe, mais il s'agit d'un scénario différent car l'un d'eux est un View
et un autre est le chemin d'accès à un fichier (String
).
Une option que j'ai, c'est d'avoir le AsyncTask
en tant que classe interne et déclarer la ImageView
comme variable de classe accessible à l'intérieur AsyncTask
. Je ne veux pas faire cela, car la même tâche est utilisée par plusieurs classes et elle n'est pas conforme à la politique DRY.
Toute aide est appréciée.
Merci.
Réponses:
1 pour la réponse № 1vous pouvez utiliser la méthode setTag d'ImageView et lui donner le chemin de votre image. votre thread asynctask ou d'arrière-plan peut alors obtenir votre imageView et faire ce que vous voulez avec.
1 pour la réponse № 2
Le même type de question posée dans SO Android: chargement d'une image à partir du Web avec Asynctask et regardez aussi En essayant d'utiliser AsyncTask, téléchargez des fichiers image essayez-le et si vous avez trouvé un problème, faites-le moi savoir.
1 pour la réponse № 3
Vous pouvez déclarer les paramètres de la tâche comme une paire d'ImageView et une chaîne.
private class DownloadFilesTask extends AsyncTask< Pair<ImageView, String> >, Integer, Long> {
}