RxJava-Wiederholung basierend auf der Logik

Hier ist der Fall, ich habe API-Aufruf usign Retrofit, der möglicherweise aufgrund eines Netzwerkfehlers fehlschlägt. Wenn dies fehlschlägt, wird eine Fehlermeldung mit einem Wiederholungsbutton angezeigt. Wenn der Benutzer den Wiederholungsknopf drückt, müssen wir das neueste Observable erneut versuchen.

Mögliche Lösungen

Retry: Retry sollte vor dem Abonnieren der Observable verwendet werden. Wenn ein Fehler auftritt und dies nicht erwünscht ist, wird die Retry-Funktion sofort wieder aktiviert. Ich muss sie nur erneut abonnieren, wenn der Benutzer die Retry-Taste gedrückt hat.

RetryWhen: Es wird so lange versucht, wie Sie Elemente ausgeben, bis Sie einen beobachtbaren Fehler ausgeben. Dann wird es gestoppt. Gleiches Problem hier, ich muss den Wiederholungsprozess nicht starten, es sei denn, die Verwendung entscheidet.

Das gleiche Observable erneut abonnieren: Diese Lösung gibt die Observable-Elemente aus. Das Problem besteht darin, dass wir den Cache-Operator verwenden. Wenn also ein Observable fehlschlägt, wird das fehlgeschlagene Element zwischengespeichert, und wenn wir es erneut abonnieren, erhalten wir den gleichen Fehler nochmal.

Gibt es noch andere Lösungen?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage