首页 > 解决方案 > 有没有办法在java(Android)中的类之间共享异步代码?

问题描述

假设我有两个班级 A 和 B。

public class myClassA {
  private void asyncMethodA(String url){
     Observable.fromCallable((Callable<Void>) () -> null //common part of the code
        ).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer<Void>() {
            @Override
            public void onSubscribe(@NonNull Disposable d) {

            }

            @Override
            public void onNext(@NonNull Void aVoid) {
                 someACode();
                //This part is different for each class
            }


            @Override
            public void onError(@NonNull Throwable e) {

            }

            @Override
            public void onComplete() {

            }
        });
  }
}


public class myClassB {
  private void asyncMethodB(String url){
     Observable.fromCallable((Callable<Void>) () -> null //common part of the code
        ).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer<Void>() {
            @Override
            public void onSubscribe(@NonNull Disposable d) {

            }

            @Override
            public void onNext(@NonNull Void aVoid) {
                someBCode();
                //This part is different for each class
            }


            @Override
            public void onError(@NonNull Throwable e) {

            }

            @Override
            public void onComplete() {

            }
        });
  }
}

是否有可能有某种代码可以帮助我不重复每个班级的共同部分?如果是这样,我该如何实施?代码必须是异步的,因此它不会锁定 UI。

标签: javaandroidasynchronousdesign-patterns

解决方案


推荐阅读