public static Result onUiAsync(Action action) {
        if (Looper.myLooper() == Looper.getMainLooper()) {
            action.call();
            return new ActionAsyncTask(action, true);
        }
        ActionAsyncTask task = new ActionAsyncTask(action);
        getUiPoster().async(task);
        return task;
    }
Asynchronously
The current thread asynchronous run relative to the main thread,
not blocking the current thread

@param action Action Interface
caprice/kit-handler/src/main/java/net/qiujuer/genius/kit/handler/Run.java