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