Tarea RxJava Async en Android
Estoy tratando de implementar una tarea asincrónica usando RxJava en Android. Intenté el siguiente código y no funcionó. Se ejecuta en el hilo de la interfaz de usuario. Estoy usando la siguiente versión de RxAndroid 0.24.0.
try {
Observable.just(someMethodWhichThrowsException())
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(s -> onMergeComplete());
} catch (IOException e) {
e.printStackTrace();
}
Sin embargo, lo siguiente funciona de forma asíncrona para mí.
Observable observable = Observable.create(new Observable.OnSubscribe<String>() {
@Override
public void call(Subscriber<? super String> subscriber) {
try {
someMethodWhichThrowsException();
} catch (IOException e) {
e.printStackTrace();
}
subscriber.onCompleted();
}
});
observable.subscribeOn(Schedulers.newThread()).observeOn(AndroidSchedulers.mainThread()).subscribe();
Estoy tratando de entender lo siguiente: 1. ¿Cuál es la diferencia entre ellos? 2. ¿Cuál es la mejor práctica al crear tareas asíncronas?
Gracias por adelantado.