Я использую RxAndroid для потоков. В моем реальном случае использования я получаю список с сервера (с помощью Retrofit). Я использую планировщики для работы над фоновым потоком и получаю окончательную эмиссию в потоке Android UI (основной).
Это хорошо работает для сетевого вызова, однако я понял, что мои операторы после сетевого вызова не используют фоновый поток, а получают вызов в основном потоке.
myService.fetchSomeIntegersFromServer()
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
.filter(integer -> {
System.out.println(Looper.getMainLooper().getThread() == Thread.currentThread());
return true;
})
.subscribe(integer1 -> {});
Как я могу убедиться, что все операции выполняются в фоновом потоке?