Reino, operaciones de red, suscripción y observación en diferentes hilos con RxJava

Necesito :

Obtener algunos datos de una API en un hilo de fondoMostrar los datos en la interfaz de usuario

Guardar en el reino.

fetchItemsFromServer().subscribeOn(Schedulers.io())
        .observeOn(AndroidSchedulers.mainThread()).subscribe(new Action1<ItemList>() {
    @Override
    public void call(ItemList items) {

        displayItems(items);

        try {
            realm.beginTransaction();
            realm.copyToRealmOrUpdate(itemList);
            realm.commitTransaction();
            Logger.v("Realm ", "Copied list object to realm");
        } catch (Exception e) {
            Logger.e("Realm Something went wrong ", e);
            realm.cancelTransaction();
        }

    }
}

Esto arroja un error:reino accedido desde hilo incorrecto

Tengo 4 pestañas para buscar diferentes mensajes al mismo tiempo.

fetchItemsFromServer () es una llamada intensiva y limitar esta llamada a un hilo no es bueno. Necesito esta flexibilidad

¿Alguien ha encontrado alguna solución usando el reino de esta manera?

La mayoría de los ejemplos, por ejemplo, tienden a centrarse en la obtención de Realm en lugar de trabajar con operaciones de red:

Ejemplo a continuación:

Rxjava -https://realm.io/news/realm-java-0.87.0/

Usando el reino con RxJava -https://realm.io/news/using-realm-with-rxjava/ (solución anterior pero inconvenientes de rendimiento)

My Realm es proporcionado por un módulo de base de datos a través de inyección de dependencia (Dagger 2)

@Module
public class DatabaseModule {

    public static final String REALM_FILE_NAME = "Realm name";

    @Provides
    Realm providesRealmInstance(Context context) {
    return Realm.getInstance(
            new RealmConfiguration.Builder(context)
                    .name(REALM_FILE_NAME)
                    .build());
    }
}

Respuestas a la pregunta(1)

Su respuesta a la pregunta