static <T> ContinuableFuture<T> executeOnUiThread(final Callable<T> action, final int retryTimes, final long retryInterval,
            final BiPredicate<? super T, ? super Exception> retryCondition) {
        return executeOnUiThread(new Callable<T>() {
            @Override
            public T call() throws Exception {
                final Retry<T> retry = Retry.of(retryTimes, retryInterval, retryCondition);
                return retry.call(action);
            }
        });
    }
static < T > ContinuableFuture < T > executeOnUiThread ( final Callable < T > action , final int retryTimes , final long retryInterval , final BiPredicate < ? super T , ? super Exception > retryCondition ) { return executeOnUiThread ( new Callable < T > ( ) { @ Override public T call ( ) throws Exception { final Retry < T > retry = Retry . of ( retryTimes , retryInterval , retryCondition ) ; return retry . call ( action ) ; } } ) ; }
@param action
@param retryTimes
@param retryInterval
@param retryCondition
@return