java - 仅在其他方法完成时调用方法 - 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();
我阻塞了主线程,这太可怕了。
解决方案
您还可以尝试以下方法:
- 使用 Kotlin:
Completable.fromAction{ method1() }
.doOnComplete{ method2() }
.subscribeOn(Schedulers.io())
.subscribe()
- 使用 Java:
Completable.fromAction(() -> method1() )
.doOnComplete(__ -> method2())
.subscribeOn(Schedulers.io())
.subscribe()
推荐阅读
- kubernetes - 无法使用 Kubeless Kafka 触发器触发 Kubeless 函数
- c# - 如何使用 C# 锁定 Windows 10
- spring - Spring - 将文件名添加到 xml 文件节点中的属性
- python - Django:如何向 ListView 添加查找字段?
- json - JSON解码SwiftUI
- c# - 如何使用 System.IdentityModel.Tokens.Jwt 包提取令牌过期时间
- zap - “extractWebSession”方法何时在 ZAP 会话管理脚本中执行
- javafx - JavaFX LineChart 上 X 轴下的堆叠数据
- ios - 如何在桌面上模拟 iPhone 进行 React Web 开发?
- javascript - Mongo在nodejs中按id合并文档