java - 仅当其他方法完成时才调用方法 - RxJava

标签 java android rx-java rx-java2 rx-android

我有两种方法:

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(); 

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

最佳答案

您还可以尝试以下操作:

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

关于java - 仅当其他方法完成时才调用方法 - RxJava,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54968226/

相关文章:

android - 如何防止警报在启动时运行耗时

java - RxJava 没有重复的合并

Java:创建一个键绑定(bind)来关闭正在运行的 Prolog 程序

Java-Excel读取多行数据

android - Android 上的自签名 SSL 接受

android - 应用程序卡在 Android 模拟器的加载屏幕上

java - RxJava 与 Single.zip 中嵌套的 Single.flatMap 相同吗?

kotlin - 可观察到在没有订阅者时缓冲项目,然后在订阅时发出它们并清除缓冲区?

java - XStream 将属性值返回为 null

java - 将复杂的 while 循环重构为 Java 8 流