le Volley.Request.getCacheKey()
restituisce l'URL che nel mio caso è la stessa; questo non ha funzionato per me.
Invece ho dovuto ignorare getCacheKey() nella mia classe figlio di tornare URL + POST (key = Value)
In questo modo sono stato in grado di memorizzare nella cache tutte le richieste POST fatte allo stesso URL con diversi dati POST .
quando si tenta di recuperare la richiesta memorizzata nella cache è necessario costruire la chiave di cache allo stesso modo.
ecco un'istantanea del mio codice:
public class CustomPostRequest extends Request<String> {
.
.
private Map<String, String> mParams;
.
.
public void SetPostParam(String strParam, String strValue)
{
mParams.put(strParam, strValue);
}
@Override
public Map<String, String> getParams() {
return mParams;
}
@Override
public String getCacheKey() {
String temp = super.getCacheKey();
for (Map.Entry<String, String> entry : mParams.entrySet())
temp += entry.getKey() + "=" + entry.getValue();
return temp;
}
}
Quando mai si costruisce una nuova richiesta è possibile utilizzare getCacheKey() per cercare la richiesta di cache prima prima di metterlo in coda richieste.
Spero che questo aiuti.
fonte
2014-10-12 23:24:49
Dove inizializzi l'oggetto mParams? Mi aiuti per favore! –
Grazie, mi hai salvato la vita. –
hai salvato il mio tempo –