Android 主线程异步调用通用方法

在Android开发过程中,在请求过程中经常药异步调用,如果异步请求过多,会有很多代码冗余。

然后想到了做个通用的方法,将多行代码改成单行来执行,开发的时候,只要考虑实现相关方法即可。

 

这里提供一个通用的异步执行类;

/**
 * 异步方法执行器
 */
public class SyncFunctionExecutor {
   private static Executor executor = Executors.newSingleThreadExecutor();

    /**
     * 带返回类型的执行
     * @param supplier 执行方法
     * @param consumer 回调结果
     * @param <T>
     */
    public  static <T> void run(Supplier<T> supplier,Consumer<T> consumer) {
        executor.execute(() -> {
            consumer.accept(supplier.get());
        });
    }

    /**
     * 不带回调的异步
     * @param runnable
     */
    public  static  void run(Runnable runnable) {
        executor.execute(() -> {
            runnable.run();
        });
    }
}

 

使用举例(有返回值回调):

public class Main {
    public static void main(String[] args) throws InterruptedException {
        SyncFunctionExecutor.run(
                ()->Main.addInfo(123),  //执行异步方法
                System.out::println);   // 打印返回的值
        Thread.sleep(1000);
    }

    // 需要异步执行的方法
    public static String addInfo(Integer integer) {
        return "hello:"+ integer;
    }
}

 

posted @ 2022-05-20 11:00  蜜铀  阅读(168)  评论(0编辑  收藏  举报