RxJava один фоновый планировщик потока

Я довольно плохо знаком с RxJava, так что это, вероятно, глупый вопрос. Я собираюсь описать мой сценарий.

У меня есть некоторый код, выполняющийся в потоке пользовательского интерфейса, который будет обновлять некоторые изображения, но эти изображения не очень важны, и они потребляют немного ресурсов при их создании, поэтому я хочу сгенерировать их в одном потоке (конечно, не в потоке пользовательского интерфейса) и генерировать их по одному. Я предполагаю, что планировщик батутов - это то, что мне нужно, но моя проблема в том, что если я его использую, он выполняет работу в потоке пользовательского интерфейса, и я хочу, чтобы он делал это в другом потоке.

Очевидно, я могу написать свой собственный поток, в котором я могу ставить элементы в очередь, а затем он обрабатывает их один за другим, но я подумал, что, может быть, RxJava найдет для меня простое решение?

Мой текущий код выглядит так:

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

Мой журнал, который говорит "На пользовательском потоке?" всегда имеет истину. Итак, как мне заставить этот код и все последующие попытки сделать то же самое работать в одном потоке (не в потоке пользовательского интерфейса), чтобы не писать кучу кода в очередь, которая работает?

Редактировать:

Я считаю, что теперь это можно сделать с помощьюSchedulers.single() или если вы хотите свой собственный, вы можете использоватьnew SingleScheduler(), Я все еще тестирую, но я думаю, что он делает то, что хотел, когда опубликовал это.

Ответы на вопрос(1)

Ваш ответ на вопрос