Ihre Frage ist wirklich unscharf für mich. Ich verstehe nicht, warum Sie den normalen Persistenzmechanismus von RS nicht verwenden können. Wenn Sie dies tun, ist es ziemlich einfach, Ihre Daten beizubehalten, wenn Anfragen ausgeführt wurden.
Vielleicht vermisse ich etwas. Also, wenn Ihre Anforderung ist, Daten persistent zu halten, dann sieht der Ansatz, den Sie vorschlagen, richtig aus. Sie könnten den Spice-Service selbst in Ihre Anfrage einfügen (siehe zum Beispiel, wie addRequest in RetrofitSpiceService überschrieben wird).Die Anfrage würde dann einen Kontext enthalten, der für die Persistenz innerhalb eines Callbacks oder innerhalb der Anfrage selbst verwendet werden kann.
Kürzlich habe ich eine POST-Anfrage mit Retrofit und RS codiert. Ich habe die Signatur der POST-Anfrage geändert, um eine Leere zurückzugeben. Dann leicht modifiziert den Retrofit-Konverter, um mit diesem Fall umzugehen und null zurück zu geben. Die Anfrage erhielt wie zuvor erwähnt den Spice-Service via Injektion und könnte einige Aktionen in der Datenbank durchführen.
Hier ist ein Code, um die Anwendung innerhalb einer Anfrage innerhalb eines Gewürzdienstes zu injizieren.
@Override
public void addRequest(CachedSpiceRequest<?> request,
Set<RequestListener<?>> listRequestListener) {
if (request.getSpiceRequest() instanceof MySpiceRequest) {
MySpiceRequest<?> mySpiceRequest = (MySpiceRequest<?>) request
.getSpiceRequest();
mySpiceRequest.setApplication(this.getApplication());
}
super.addRequest(request, listRequestListener);
}
Hey Haben Sie ein Beispiel dafür haben ... Ich bin eigentlich auch versuchen Robospice zu verwenden, um die Daten mit Retrofit zwischenzuspeichern – Lion789
Edited meine Antwort mehr Informationen bereitzustellen, um @ Lion789. Lassen Sie mich wissen, wenn Sie weitere Informationen benötigen. – saywhatnow
danke, war eigentlich neugierig, wenn ich OkHttpClient habe und nachrüst, passiert das Caching automatisch, was bedeutet, dass ich Robospice dann nicht benutzen muss? – Lion789