Disable Volley cache management

前端 未结 3 2088
生来不讨喜
生来不讨喜 2020-12-05 13:50

Is there a way I could disable the Volley cache management? My app is using Google Volley library to manage the transport layer, but I have my own cache manager implementati

相关标签:
3条回答
  • 2020-12-05 13:55

    If you use any of the default Request classes implemented in volley(e.g. StringRequest, JsonRequest, etc.), then call setShouldCache(false) right before adding the request object to the volley RequestQueue:

    request.setShouldCache(false);
    myQueue.add(request);
    

    If you have your own implementation of the Request class, then you can call setShouldCache(false) in the constructor of your class.

    This solution disables caching for each requests individually. If you want to disable caching globally from the volley library, you can permanently set the mShouldCache variable to false in the Request class.

    0 讨论(0)
  • 2020-12-05 14:03
    request.setShouldCache(false);
    

    does not seem to be enough for GET requests. however, clearing the cache before adding to the queue seems to help

    myRequestQueue.getCache().clear();
    

    I put this in my getRequestQueue() method in my Volley singleton. before returning the queue.

    0 讨论(0)
  • 2020-12-05 14:08

    You can create your RequestQueue from constructor and pass a NoCache object as the first parameter. The second parameter is a network transport based on your choice of AndroidHttpClient or HttpURLConnection.

    RequestQueue queue = new RequestQueue(new NoCache(), new BasicNetwork(new HurlStack()));
    

    For more details see this documentation.

    According to the documentation, BasicNetwork is Volley's default network implementation.

    0 讨论(0)
提交回复
热议问题