2016-01-27 1 views
4

Voici ce que je l'ai fait:Picasso l'image Android chargement - modèle de thread

  • créé un téléchargeur personnalisé (extends OkHttpDownloader) et attribuée à Picasso.
  • A l'intérieur du téléchargeur, j'ai ajouté un intercepteur (getClient().interceptors().add(new Interceptor() {...})

Je lançais mon application Android en mode débogage, je remarquais il y a deux fils, chacun bien nommé « Picasso -.... ». Lorsque j'essaie d'accéder à une image à partir du Web, chacun de ces threads appelle la méthode public Response intercept(Chain chain) de mon intercepteur, ce qui signifie que la même demande est traitée par plus d'un thread simultanément. Quelle est la raison derrière cela?

+0

pouvons-nous voir le code pertinent? – Gavriel

Répondre

0

Merci Gavriel de m'avoir permis de faire quelque chose d'aussi simple que de mettre en place une installation Picasso très rudimentaire et de faire mes devoirs, c'est-à-dire de l'expérimenter un peu. De toute façon. J'ai découvert que faire: (car je suppose que la gestion de ce genre d'informations de débogage)

picasso.setIndicatorsEnabled(true); et/ou picasso.setLoggingEnabled(true);

effectivement créé un autre thread. Cela m'avait dérouté - les deux threads exécutent vraiment ma requête une fois chacun. Très confus, mais peu importe. Je suppose que cela est fait de manière asynchrone, serait logique pour la journalisation de toute façon. Une idée, cependant, pourquoi ce deuxième thread exécuterait ma demande d'image?