Home » Android » android – Volley NetworkImageView clear cached image

android – Volley NetworkImageView clear cached image

Posted by: admin June 15, 2020 Leave a comment


Does anybody know if it is possible to clear the cached image from a single NetworkImageView using Googles Volley library?

I have an avatar image in a NetworkImageView and would like to show the new image once I have uploaded it to the server. At the moment if I do
profileImg.setImageUrl("myUrl", mImageLoader); I get the cached image.

How to&Answers:

Check this out :

1) Turning off cache :
If you want disable the cache for a particular url, you can use setShouldCache() method as below.

StringRequest stringReq = new StringRequest(....);

2) Deleting cache for particular URL : Use remove() to delete cache of an URL.


3) Deleting all the cache :


Also, check out this link here.

Hope this helps.


So to belatedly answer my own question. I ended up taking a different approach to ensure that I always get the latest copy of an avatar image and it turned out to be very simple.

Instead of trying to clear out an individual image from the cache I use the following method.

int time = (int) (System.currentTimeMillis());//gets the current time in milliseconds
String myUrl = "www.mySite.com?timestamp=" + String.ValueOf(time);
profileImg.setImageUrl("myUrl", mImageLoader);

What this does is to append an imaginary parameter to the url I call to get the image with a current timestamp. This guarantees that I am always making a call to a unique url and so therefore am always getting the most up-to-date version of that image.

The beauty of this approach is that it is not limited to Volley and can be used however you choose to make network calls.


in the LruBitmapCache you should do diable put(url, bitmap) :

    public void putBitmap(String url, Bitmap bitmap) {
       // put(url, bitmap);

by this way every time you call the volley method image don’t save to catch


  To turn off the cache:

to remove the cache for a specific request:

to clear all cache:

to invalidate the cache: this will allow to display the cached data until the response is received. When the response is received, it will automatically override the cached data.

queue.getCache().invalidate(url, true);

    for more details you can refer to the 


If you create the cache like this:

RequestQueue requests = Volley.newRequestQueue( context );
BitmapCache cache = new BitmapCache(cacheSize);
ImageLoader loader = new ImageLoader( requests, cache );

You can clear all like this:

public void clear () {


I have created volleySingleton Class. I load image from ImageLoader . I have a requirement of deleting the cache but not able do that. Used all these three method

1) Deleting cache for particular URL : Use remove() to delete cache of an URL.

2) Deleting all the cache :



I have tried all of them but cashe is not getting deleted