首页 > 解决方案 > 仅在其他方法完成时调用方法 - RxJava

问题描述

我有两种方法:

private void method1() throws InterruptedException {
        //SimulateLongOperation
        Thread.sleep(5000);
        System.out.println("hello1");
    }

private void method2(){
        System.out.println("hello2");
    }

我想在 method1 完成后调用 method2,但我不想阻塞 UI 线程。
可以用 RxJava 做到这一点吗?
它会是什么样子?网上没有简单的例子,只有看不懂的好文章。

当我调用时:

method1();  
method2(); 

我阻塞了主线程,这太可怕了。

标签: javaandroidrx-javarx-java2rx-android

解决方案


您还可以尝试以下方法:

  • 使用 Kotlin:
     Completable.fromAction{ method1() }
            .doOnComplete{ method2() }
            .subscribeOn(Schedulers.io())
            .subscribe()
  • 使用 Java:
     Completable.fromAction(() -> method1() )
            .doOnComplete(__ ->  method2())
            .subscribeOn(Schedulers.io())
            .subscribe()

推荐阅读