如何在RxJava中执行两个方法异步?

How to execute two methods async in RxJava?

提问人:Slava 提问时间:9/21/2023 更新时间:9/21/2023 访问量:14

问:

如何执行两个方法异步? 我有两个方法从菜单单击调用,我需要在第一个方法之后执行第二个方法。 但是我不明白为什么makeMark()中的result.get()等待Thread.sleep(10000)和getResult?

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    makeMark(id); 
    try {
       Thread.sleep(10000);
    } catch (InterruptedException e1) {
    }
    getResult() //must execute after makeMark() 
    return true
}


public static void makeMark(id){
     databaseCall(id)
        .subscribeOn(Schedulers.io())
        .observeOn(AndroidSchedulers.mainThread())
        .subscribe(result -> {
            result.get() //why this execute after thread sleep?
)
Android 异步 System.Reactive 执行

评论

1赞 Kishan Maurya 9/21/2023
makeMark 正在处理 IO 线程并在主线程上获得结果。线程.sleep(10000);在主线程上。因此,您的主线程处于睡眠模式 10 秒。一旦主线程恢复,则只有 result.get() 将被执行。

答: 暂无答案