src/main/java/io/reactivex/Single.java
@CheckReturnValue
    @SchedulerSupport(SchedulerSupport.NONE)
    public final Single<T> retry(BiPredicate<? super Integer, ? super Throwable> predicate) {
        return toSingle(toFlowable().retry(predicate));
    }
@CheckReturnValue
    @SchedulerSupport(SchedulerSupport.NONE)
    public final Single<T> retry(BiPredicate<? super Integer, ? super Throwable> predicate) {
        return toSingle(toFlowable().retry(predicate));
    }
Re-subscribe to the current Single if the given predicate returns true when the Single fails
with an onError.
<dl>
<dt><b>Scheduler:</b></dt>
<dd>{@code retry} does not operate by default on a particular {@link Scheduler}.</dd>
</dl>
@param predicate the predicate called with the resubscription count and the failure Throwable
and should return true if a resubscription should happen
@return the new Single instance
@since 2.0