RxJava를 사용하여 백그라운드 스레드에서 메소드를 실행하고 전경 스레드에서 결과를 처리하는 방법을 파악하려고합니다. 나는 해결책을 발견했지만 정신병 체크를하고 더 좋은 방법이 있는지 관찰하기를 원했는데 Observables가 유사한 일을하도록 여러 가지 다른 방법이있는 것처럼 보였기 때문입니다.RxJava Observables를 사용하여 백그라운드 스레드에서 객체를 생성하는 함수 사용
여기에 내가 가진 무엇 예상대로
Observable.defer(
() -> Observable.just(
// A. Should run on Scheduler.newThread
db.query(
false, DATABASE_TABLE, null,
null, null, null, null, null,
null)))
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(
Subscribers.create(
// B. Should run on AndroidSchedulers.mainThread
cursor -> adapter.swapCursor(cursor)
));
코드가 작동합니다. A는 백그라운드 스레드에서 실행되고 B는 주 스레드에서 실행됩니다.
내 질문에이 질문은 충분히 합리적인 것처럼 보이지만이를 위해보다 우아한 방법이 있습니까?
아주 좋은 제안, 감사합니다! – emmby