2016-07-03 6 views
0

Ich habe dieses Problem, wo ich einige URL-Anfragen mit Volley senden und alles funktioniert gut, bis ich eine einzelne Anfrage aus dem Volley-Cache löschen muss, meldet Volley das Die Anfrage konnte nicht gefunden werden.Volley Anfrage Warteschlange kann nicht einzelne Eintrag entfernen

Hier ist meine Anfrage:

StringRequest stringRequest = new StringRequest(method, url, responseListener, errorListener) {...}; 
    Log.d("Request URL", "" + url); 
    stringRequest.setTag(url); 
    stringRequest.setRetryPolicy(new DefaultRetryPolicy(8000, 1, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT)); 
    requestQueue.add(stringRequest); 

Und wenn ich versuche, später die zwischengespeicherte Anforderung zu entfernen ich einfach:

requestQueue.getCache().remove(url); 

Dies ist der Volley-Log:

07-03 17:01:03.259 31199-31199/my.package D/Volley: [1] DiskBasedCache.remove: Could not delete cache entry for key=http://www.myappwebsite.com/..., filename=-615250731-706907684 

All Hilfe würde wirklich geschätzt werden.

+0

Sind Sie sicher, dass der Schlüssel, den Sie als Parameter in der remove-Methode angegeben haben, mit dem übereinstimmt, der im Cache gespeichert wurde? Können Sie auf der URL nach einem Codierungsproblem suchen? –

+0

Hallo, danke für deine Antwort. Ich habe später herausgefunden, dass das Problem in dem Tag war, StringRequest hat sein eigenes Tag, das von getCacheTag() abgerufen werden kann, das funktioniert jetzt. Danke dir übrigens! – Matteo

Antwort

0

getCache().clear() hat vielleicht in meiner Situation geholfen.

requestQueue.getCache().clear(); 

haben auch einen Blick auf diese question, könnte es auch Sie erleuchten.

Hinweis: je nachdem, wie Sie den Code gemacht wird, sollten Sie Ihre requestQueue instanziiert nur once.

Verwandte Themen