2017-02-01 4 views
1

Ich verstehe nicht ganz, wie die RecyclerView und Glide in Bezug auf Caching Informationen und Bilddaten arbeiten, so dass ich mich fragte, ob jemand helfen könnte.FirebaseUI mit Glide und Cache

Momentan speichere ich Metadaten über meine Bilder in der Echtzeitdatenbank. Die Meta-Daten haben genügend Informationen, um eine Speicherreferenz und ziehen Sie das richtige Bild aus der Datenbank zu machen:

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

aber meine Frage ist in Bezug auf das firebaseUI Element:

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

Also ich wie folgt, um Bilder zu meinem recyclerview hinzufügen:

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

Jetzt jedes Mal wenn ich diese Tätigkeit verlassen, wo die Karten der Aktivität residieren wird offensichtlich zerstört. Im onCreate der Klasse wird die for-Schleife erneut aufgerufen. Wenn ich also adapter.notifyItemInserted(1); mache, wird der Adapter aufgerufen und die Gleitfunktion zum Hinzufügen des Bildes wird erneut aufgerufen.

Also meine Frage ist jedes Mal, wenn ich die Aktivität zerstören und neu erstellen und dann die Karten wieder hinzufügen, wenn die glide-Methode aufgerufen wird, macht es eine Anfrage an den Speicher-Bucket, um das Bild erneut herunterzuladen? Wenn nicht was passiert? und wenn die Bilder im Cache gespeichert sind, wie groß ist dieser Cache?

Jede Hilfe ist viel

Antwort

0

Viele Ihrer Antworten zu Glide geschätzt, wenn Sie durch the project wiki on GitHub lesen beantwortet werden können.

Wenn Glide ein Bild abruft, wird es lokal im Speicher und auf der Festplatte zwischengespeichert. Sie können configure the sizes of these caches. Hier ist, was die Dokumentation über die Standard-Disk-Cache-Größe zu sagen hat:

Die interne Cache-Fabrik legt ich die Disk-Cache in Ihrer Anwendung internes Cache-Verzeichnis und legt eine maximale Größe von 250 MB.

Und für den Cache-Speicher:

Standardgrößen werden von der MemorySizeCalculator Klasse bestimmt. Die MemorySizeCalculator-Klasse berücksichtigt die Bildschirmgröße verfügbaren Speicher eines bestimmten Geräts, um sinnvolle Standardgrößen zu erreichen.

Es wird erwartet, dass die Dinge immer wieder aufgebaut und abgebrochen werden. Deshalb existieren diese Caches.