Имейте следующий фрагмент:
Log.d("#######", Thread.currentThread().getName());
RxSearchView.queryTextChangeEvents(searchView)
.debounce(400, TimeUnit.MILLISECONDS,Schedulers.newThread())
.flatMap(new Func1<SearchViewQueryTextEvent, Observable<GifsData>>() {
@Override
public Observable<GifsData> call(SearchViewQueryTextEvent txtChangeEvt) {
return RestWebClient.get().getSearchedGifs(txtChangeEvt.queryText().toString(),"dcJmzC");
}
})
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<GifsData>() {
@Override
public void onCompleted() {
Log.d("#######","onCompleted searchGifs");
}
@Override
public void onError(Throwable e) {
Log.d("#######",e.toString());
}
@Override
public void onNext(GifsData gifsData) {
mainFragmentPresenterInterface.displaySearchedGifsList(gifsData);
}
});
}
Независимо от того, что я пытаюсь, я продолжаю получать следующую ошибку:
java.lang.IllegalStateException: Must be called from the main thread. Was: Thread[RxNewThreadScheduler-2,5,main]
Вероятно, потратил на это около часа ... Не смог понять, в чем проблема. Даже пытался сопоставить мой фрагмент со следующей ссылкой:
Объединение наблюдаемого RxTextView и модифицированного наблюдаемого
Неудачно. Может ли кто-нибудь указать, что здесь не так?
Спасибо.