Wie implementieren Sie die Speicher-Cache?
Ich bin Anfänger mit android. Ich möchte an Speicher-Cache in meiner Anwendung, um Bilder zu speichern im Speicher-cache und löschen Sie es, wenn diejenigen, die Bilder sind nicht erforderlich, um in-cache! Jede Hilfe wird sehr geschätzt.
Ich habe versucht, mit Disk-Cache. ViewPager ist nicht Kommissionierung Bilder richtig aus dem Disk-cache. Aber ist es nicht von Speicher-Caches, die ich versucht habe, diese Dinge von Verarbeitung Bitmpas aus dem Ui-thread und Zwischenspeichern von bitmaps, aber, wie ich bin Anfänger, ich habe es nicht so richtig app ist noch immer abgestürzt mit OutOfMemory. Können Sie mir helfen, mit der Verarbeitung von Bitmaps Aus dem UI-thread mit Cache-Speicher? Vielen Dank im Voraus!
InformationsquelleAutor Manoj | 2012-12-31
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie WeakHashMap zu implementieren eine einfache caching-Methode. Es ist Elementen wird eine garbage Collection ausgeführt werden, so dass, wenn Ihre Anwendung verwendet Ihre Haufen, und dann wird es freigegeben, aber bis dahin können Sie die Bilder in den Speicher.
Leider bin ich nicht so sehr in Android, also weiß ich nicht, wie funktioniert das mit ViewPager. Die Lösung, die ich vorgeschlagen, Sie ist ein eher Allgemeines. Sie definieren eine WeakHashMap und machen Sie sichtbar für die views, die die Anzeige der Bilder. Wenn Sie brauchen ein Bild, überprüfen Sie tha Karte zuerst, und wenn Sie es nicht haben, laden Sie das Bild und legen Sie in die hashmap. Wenn später, müssen Sie das gleiche Bild (und auf der GC hat nicht gereinigt wurde), können Sie es von der Karte.
InformationsquelleAutor András Kerekes
Bitte verwenden Sie den folgenden code und lassen Sie mich wissen .
InformationsquelleAutor itsrajesh4uguys
Memory-caching ist eine Funktion von java, nicht Android.
import java.util.*
Dann verwenden, Liste, Landkarte, ArrayList und HashMap zu bauen, die ein name/Wert-gepaart array of memory mapped objects, und speichern Sie es als eine hashmap. Sie können dann den Zugriff (Lesen/löschen/update) Objekte im Speicher über die hashmap.
Wenn Sie brauchen, um den Speicher-Objekte für zukünftige Instanzen (z.B. durch die Anwendung stoppen und starten), nur dann brauchen Sie zum schreiben der Daten auf ein externes Speichermedium (vermutlich, Bilder und alle), und Lesen Sie es wieder, wie gebraucht.
Jedoch in den meisten Fällen sind die Gebäude der lokalen cache-Speicher, weil Sie einfach nur die Daten abgerufen und möchten, dass andere Klassen zu verarbeiten, es jetzt oder in Naher Zukunft. Wenn Ihre Anwendung keine Daten finden, weil es neu gestartet, oder es ist nicht mehr im Speicher, da der Speicher Einschränkungen, es ist am besten, um die Daten abzurufen, wieder und sich nicht auf möglicherweise veraltete cache-Dateien.
InformationsquelleAutor Andrew