nehme ich es gelöst benutzerdefinierte Anruf (zwingende Rückruf von Retrofit) wieder verwenden. Übergeben Sie in dieser Klasse die Wiederholungsanzahl. Bei Erfolg oder Fehlschlag der Antwort haben Sie Zugriff auf die Anzahl der Wiederholungen, die spezifisch für den Web-Service sind. Sie stören sich also nicht im Falle einer parallelen Ausführung.
@POST("/xyz/abc/")
void getSomeData(
@Body TypedInput body,
Callback<Response> callback);
Sie können Ihren benutzerdefinierten Rückruf erstellen und übergeben und einen Objekt/int-Wert speichern, um die Anfrage eindeutig zu identifizieren.
public interface CustomOnRequestFinishedListener {
void onSuccess(Object response, Response retrofitResponse, Object data);
void onError(RetrofitError error, Object data);
}
CustomOnRequestFinishedListener implementieren, wo Sie CustomCallback anrufen möchten und Erfolg/Misserfolg Rückruf
public class CustomCallback extends CallBack
{
private final Object data;
private final CustomOnRequestFinishedListener customOnRequestFinishedListener;
public CustomCallback(CustomOnRequestFinishedListener customOnRequestFinishedListener, Object data)
{
this.data = data;
this.customOnRequestFinishedListener = customOnRequestFinishedListener;
}
@Override
public void success(Object o, Response response)
{
customOnRequestFinishedListener.onSuccess(o, response, data);
}
@Override
public void failure(RetrofitError error)
{
customOnRequestFinishedListener.onError(error, data);
}
}
Auf diese Weise werden Sie zunächst einige einzigartige Daten in Anforderung Einstellung erhalten und werden dieselben Daten in Antwort erhalten.
Ich denke, Sie sollten Synchronized Method verwenden und innerhalb dieser Methode sollten Sie diesen Zähler übergeben und den Wert erhöhen. – Gokul