code: public static <T> T onUiSync(Func<T> func) {
          if (Looper.myLooper() == Looper.getMainLooper()) {
              return func.call();
          }
  
          FuncSyncTask<T> poster = new FuncSyncTask<T>(func);
          getUiPoster().sync(poster);
          return poster.waitRun();
      }
docs: Synchronously
  <p/>
  In this you can receiver {@link Func#call()} return
  <p/>
  The current thread relative thread synchronization operation,
  blocking the current thread,
  thread for the main thread to complete
  
  @param func Func Interface
  @param <T>  you can set any type to return
  @return {@link T}