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; } }