【发布时间】:2017-05-11 21:40:10
【问题描述】:
我通过订阅调用服务器并使用结果更新Activity1 的视图:
//from within Activity1
xxx = fetch.byId(id)
.subscribe(new Subscriber<Model>() {
@Override
public void onCompleted() {
}
@Override
public void onError(Throwable e) {
}
@Override
public void onNext(Model model) {
//update view with the model
}
});
所有这些都应该对用户不可见(没有进度对话框等)。
我想要更多的是处理对Activity1 的点击:点击后,我必须等待(显示进度对话框)xxx 接收model,然后启动Activity2(需要model 要显示的值)。如果点击发生在xxx 完成之后,那么我不必等待(因为它已经完成)并立即启动Activity2。
如何优雅地等待已经订阅的 Observable?
【问题讨论】:
-
If the click happened after the xxx finished then I don't have to wait (because it's already done) and start the Activity2 right away。这部分我还是不知道:如果xxx完成了,你已经去Activity2=> 没有办法点击Activity1? -
一切都发生在Activity1,Activity2对这个问题没有意义,只是一个动作的例子。