RxJava Single Background Thread Scheduler

Ich bin ziemlich neu in RxJava, also ist dies wahrscheinlich eine dumme Frage. Ich werde mein Szenario beschreiben.

Ich habe Code auf dem UI-Thread, der einige Bilder aktualisiert, aber diese Bilder sind nicht sehr wichtig und verbrauchen beim Generieren ein wenig Ressourcen. Daher möchte ich sie auf einem einzelnen Thread generieren (natürlich nicht auf dem UI-Thread). und sie eins nach dem anderen erzeugen. Ich vermute, der Trampolin-Scheduler ist das, was ich will, aber mein Problem ist, dass wenn ich ihn verwende, er die Arbeit am UI-Thread erledigt und ich möchte, dass er es auf einem anderen Thread macht.

Offensichtlich kann ich meinen eigenen Thread schreiben, in dem ich Elemente in die Warteschlange stellen kann, und diese dann einzeln verarbeiten, aber ich dachte, RxJava hätte vielleicht eine einfache Lösung für mich?

ein aktueller Code sieht so aus:

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);
    }
});

Mein Protokoll mit der Aufschrift "Auf UI-Thread?" hat immer wahr. Wie kann ich diesen Code und alle nachfolgenden Versuche, dasselbe zu tun, auf einem einzelnen Thread (nicht auf dem UI-Thread) ausführen, ohne eine Reihe von Code zu schreiben, der diese Funktion in die Warteschlange stellt?

Bearbeiten

Ich glaube, dass dies jetzt mit @ erreicht werden kaSchedulers.single() oder wenn Sie Ihre eigenen wollen, können Sie @ verwendnew SingleScheduler(). Ich teste noch, aber ich denke, es macht das, was ich wollte, als ich das gepostet habe.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage