1
以下のコードでは、loadMoreStrings()メソッドはgetLabelsFromServer()が完了する前にcall()メソッドを実行しています。私はまだRxJavaを学んでいますが、これを正しく実行することはできません。私のRxJavaは、呼び出し可能な関数が終了する前に観測結果を観測するのはなぜですか?
private void fetchLabels() {
listObservable = Observable.fromCallable(new Callable<List<String>>() {
@Override
public List<String> call() {
return apiService.getLabelsFromServer();
}
}).subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread());
loadMoreStrings();
}
@Override
public void loadMoreStrings() {
stringListObservable.subscribe(new Action1<List<String>>() {
@Override
public void call(List<String> label) {
myStrings.addAll(label);
}
});
}
これはloadMoreStrings()メソッドに登録されています。 –
'listObservable'と' stringListObservable'が同じで、 'onNext()'呼び出しを受け取った場合、正しく動作します。そうでないと、 'onCompleted()'または 'onError()' –