我使用RxAndroid和RxJava与Kotlin一起向API提出各种请求并将它们异步发送:
getClient().sendSomeData(data)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(
{
Log.i("upload", "data ok")
},
{
t ->
Log.e("upload", "data error: " + t.stackTrace)
}
);
getClient().sendSomeOtherData(otherData)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(
{
Log.i("upload", "otherData ok")
},
{
t ->
Log.e("upload", "data error: " + t.stackTrace)
}
);
等等。 我现在想做的是,等待"等待"所有api请求完成并显示进度。我如何等待所有可观测量完成并获得进展回调?
答案 0 :(得分:0)
回答您的第一个问题here和here,您会看到 id: 1
select_type: SIMPLE
table: NULL
type: NULL
possible_keys: NULL
key: NULL
key_len: NULL
ref: NULL
rows: NULL
Extra: Select tables optimized away
方法,该方法是在成功回复后调用的。另外here是此方法的文档。因此,您可以在Observable.onCompleted
方法调用中简单地实现第三个操作,并修改您的请求的状态信息。
如果涉及请求进度状态,我不确定,但我认为RxJava不提供开箱即用的此功能。但是我找到了答案here(使用了Retrofit库)。