public static <T> void andThenOnUi(final Scheduler scheduler, final Callable<T> background, final Consumer<T> foreground) {
        scheduler.createWorker().schedule(() -> {
            try {
                final T value = background.call();
                AndroidSchedulers.mainThread().createWorker().schedule(() -> {
                    try {
                        foreground.accept(value);
                    } catch (final Throwable t) {
                        Log.e("error when running the second part of andThenOnUi");
                    }
                });
            } catch (final Exception e) {
                Log.e("error when running the first part of andThenOnUi", e);
            }
        });
    }
This Scheduler is intended for queuing Geocache refreshes.
<br>
Don't use it for anything else than that.
It shall SOLELY be used by {@link cgeo.geocaching.CacheDetailActivity} and {@link cgeo.geocaching.service.CacheDownloaderService}!
main/src/main/java/cgeo/geocaching/utils/AndroidRxUtils.java