Agendador de threads em segundo plano RxJava

Eu sou bastante novo no RxJava, então essa é provavelmente uma pergunta idiota. Vou descrever meu cenário.

Eu tenho algum código em execução no thread da interface do usuário que atualizará algumas imagens, mas essas imagens não são muito importantes e consomem um pouco de recursos ao gerá-las, então eu quero gerá-las em um único thread (não é claro, o thread da UI) e gerá-los um por um. Eu estou supondo que o agendador de trampolim é o que eu quero, mas o meu problema é que, se eu usá-lo, ele faz o trabalho no thread da interface do usuário e eu quero fazê-lo em outro thread.

Obviamente, posso escrever meu próprio segmento no qual posso enfileirar itens e depois processá-los um por um, mas pensei que talvez o RxJava tivesse uma solução simples para mim?

Meu código atual é assim:

Observable<Bitmap> getImage = Observable.create(new Observable.OnSubscribe<Bitmap>() {
    @Override public void call(Subscriber<? super Bitmap> subscriber) {
        Log.w(TAG,"On ui thread? "+ UIUtils.isRunningOnUIThread());
        subscriber.onNext(doComplexTaskToGetImage());
        subscriber.onCompleted();
    }
});

getImage.subscribeOn(Schedulers.trampoline()).subscribe(new Action1<Bitmap>() {
    @Override public void call(Bitmap bitmap) {
        codeToSetTheBitmap(bitmap);
    }
});

Meu log que diz "No thread da interface do usuário?" sempre tem verdade. Então, como faço para que esse código e todas as tentativas subseqüentes de executar a mesma coisa sejam executadas em um único thread (não o thread da interface do usuário), sem precisar escrever um monte de código para enfileirar esse trabalho?

Editar:

Eu acredito que isso agora pode ser realizado usandoSchedulers.single() ou se você quiser o seu, você pode usarnew SingleScheduler(). Ainda estou testando, mas acho que faz o que eu queria quando postei isso.

questionAnswers(2)

yourAnswerToTheQuestion