开发商! 我想在实际项目中使用RxJava,但似乎我并没有得到它的逻辑正确。我需要在一个新线程中创建一个对象列表。完成后,将此列表发送给观察员。我发现是:RxJava 2创建列表在新线程
LinkedList<IntroSliderElement> list = new LinkedList<>();
list.add(new IntroSliderElement(0, "test 0", 0));
list.add(new IntroSliderElement(1, "test 1", 1));
list.add(new IntroSliderElement(2, "test 2", 2));
Observable<LinkedList<IntroSliderElement>> listObserv = Observable.just(list);
listObserv
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<List<IntroSliderElement>>() {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onNext(List<IntroSliderElement> value) {
view().render(new IntroModel.OnFirstSliderElement((LinkedList<IntroSliderElement>) value));
}
@Override
public void onError(Throwable e) {
}
@Override
public void onComplete() {
}
});
但因为它是很容易看到,列表创建并在主线程满足,因此如何使它在使用rxJava一个全新的创建线程?
是的,当然,我忘了写它,但它不会解决问题。列表将在可观察之前创建。使用主线程的资源。 –
那么你想要的是[Observable.fromCallable()](https://artemzin.com/blog/rxjava-defer-execution-of-function-via-fromcallable/)API – azizbekian
谢谢我已经试过这个,一切都按预期工作! –