2016-03-23 4 views
2

Ich benutze Glide-Bibliothek zum Anzeigen von Bildern. Ich versuche, durch Verwendung des folgenden Codes glide Cache zu löschen:Clear Glide Bild Cache in Android

Glide.get(MainActivity.this).clearDiskCache(); 
Glide.get(MainActivity.this).clearMemory(); 

der obige Code innerhalb Async ist, und ich rufe in Do Hintergrund Teil.

Wenn ich laufe dies ich immer bekommen:

Caused by: java.lang.IllegalArgumentException: You must call this method on the main thread 
at com.bumptech.glide.util.Util.assertMainThread(Util.java:135) 
at com.bumptech.glide.Glide.clearMemory(Glide.java:370) 

Was hier falsch sein könnte? Wenn ich das oben genannte in MainThread verwende, wird es im Hintergrund ausgeführt.

Wie lösche ich den Cache?

Danke!

+1

Haben Sie versucht, 'Glide.get (MainActivity.this) .clearMemory();' in 'onPostExecute()'? –

+0

Nein. Ich werde es versuchen. –

+0

@MuchOverflow: Das war das Problem. Entschuldigung, mein fehler! Trotzdem danke! –

Antwort

8

clearMemory() muss am Haupt-Thread aufgerufen werden. clearDiskCache() muss auf einem Hintergrund-Thread aufgerufen werden.

Sie können nicht beide gleichzeitig auf demselben Thread aufrufen.