2017-02-01 2 views
1

Je ne comprends pas très bien comment fonctionne le recycleurView and glide en ce qui concerne la mise en cache des informations et des données d'image, donc je me demandais si quelqu'un pouvait vous aider.FirebaseUI avec glide et cache

Actuellement, je stocke des méta-données sur mes images dans la base de données en temps réel. La méta-données a suffisamment d'informations pour pouvoir faire une référence de stockage et de tirer l'image correcte de la base de données:

storageReference.child("users/uid/profile.png") 

Cependant, ma question concerne l'élément firebaseUI:

Glide.with(this) 
    .using(new FirebaseImageLoader()) 
    .load(storageReference) 
    .into(imageView); 

Je ajouter des images à mon recyclerview comme suit:

for (ProfileCard card : localDB.getAllCards()) { 
    profileCards.add(1, card); 
    adapter.notifyItemInserted(1); 
} 

maintenant, chaque fois que je laisse cette activité où les cartes se trouvent l'activité est évidemment détruite. Dans le onCreate de la classe, la boucle for est appelée à nouveau. Donc quand je fais adapter.notifyItemInserted(1); l'adaptateur sera appelé et la fonction de glissement pour ajouter l'image sera appelée à nouveau.

Donc, ma question est chaque fois que je détruis et recréer l'activité et que j'ajoute à nouveau les cartes quand la méthode de glissement est appelée fait-elle une demande au compartiment de stockage pour télécharger à nouveau l'image? Si ce n'est pas ce qui se passe? et si les images sont stockées dans le cache, quelle est la taille de ce cache?

Toute aide est très appréciée

Répondre

0

Beaucoup de vos réponses sur Glide peut répondre si vous lisez the project wiki on GitHub. Lorsque Glide extrait une image, elle est mise en cache localement en mémoire et sur le disque. Vous pouvez configure the sizes of these caches. Voici ce que la documentation doit dire au sujet de la taille du cache du disque par défaut:

L'usine de cache interne met le cache disque dans le répertoire du cache interne de votre application et définit une taille maximale de 250 Mo.

Et pour la mémoire cache:

tailles par défaut sont déterminées par la classe MemorySizeCalculator. La classe MemorySizeCalculator prend en compte la taille de l'écran la mémoire disponible d'un périphérique donné pour trouver des tailles par défaut raisonnables .

Il est prévu que les choses seront construites et démolies à plusieurs reprises. C'est pourquoi ces caches existent.