Ich verwende Picasso, um Bilder von meinem Server zu laden. Es funktioniert gut, aber ich lade ein Bild und änderte es später. Aber Picasso hat das Bild irgendwo zwischengespeichert (ich habe die SD-Karte überprüft und konnte kein Verzeichnis finden, in dem Picasso gespeichert ist).
Ich habe versucht, den Cache zu entfernen, wie von der akzeptierten Antwort auf diese Frage vorgeschlagen: Cache in Picasso ungültig machen
Ich habe auch versucht, beim Laden von Bildern den Cache zu überspringen: Picasso.with (ctx) .load (neue Datei ("/ path / to / image")). skipMemoryCache (). in (imageView)
Aber keine dieser Methoden funktioniert.
Vielen Dank für Vorschläge oder Hinweise, die mir helfen könnten, dieses Problem zu lösen.
Picasso
Datenträgerabbilder werden im internen Cache-Verzeichnis der App zwischengespeichert. Schauen Sie sich die Methode createDefaultCacheDir
hier an Ссылка
Sie können alle Bilder in getCacheDir/picasso-cache
wie folgt löschen
Um alle Dateien im Verzeichnis zu löschen
%Vor%Sie können diesen Eintrag Ссылка lesen, um zu verstehen, wie der Picasso-Festplatten-Cache funktioniert.
Zuerst müssen Sie static void delete(Object cache)
method in der ResponseCacheIcs-Klasse hinzufügen. Diese Klasse ist in UrlConnectionDownloader.java definiert. Es scheint so:
Danach müssen Sie
hinzufügen %Vor% Methode in Downloader.java. Dann müssen Sie in UrlConnectionDownloader.java und OkHttpDownloader.java eine nicht implementierte Methode hinzufügen. Sie sollten public void clearDiskCache()
method in UrlConnectionDownloader.java wie folgt definieren:
Dann müssen Sie hinzufügen:
%Vor%Methode in Dispacher.java. Und dann hinzufügen:
%Vor%Methode in Picasso.java.
Bingo !!! Jetzt können Sie clearDiskCache()
method in Ihrem Code aufrufen. Hier ist ein Beispiel: