Vous pouvez utiliser l'opérateur retry()
pour vous réabonner automatiquement immédiatement. Vous pouvez également utiliser l'opérateur retryWhen()
pour vous réabonner après un délai ou uniquement sous condition.
observable
.retryWhen(error -> error.flatMap(e -> Observable.timer(1, SECONDS))
réessayer l'abonnement après 1 seconde. En utilisant flatMap()
vous pouvez également tester le type d'erreur et seulement réessayer sur une erreur particulière.
observable
.retryWhen(error -> error.flatMap(e -> {
if (e instanceof IOException) {return Observable.timer(1, SECONDS);}
return Observable.just(e);
})
une nouvelle tentative si l'erreur est IOException
et non pour tout autre type d'erreur.