RxJava Асинхронная задача в Android
Я пытаюсь реализовать асинхронную задачу, используя RxJava в Android. Я попробовал следующий код, и он не работал. Он выполняется в потоке пользовательского интерфейса. Я использую следующую версию RxAndroid 0.24.0.
try {
Observable.just(someMethodWhichThrowsException())
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(s -> onMergeComplete());
} catch (IOException e) {
e.printStackTrace();
}
Однако следующее работает для меня асинхронно.
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();
Я пытаюсь понять следующее: 1. В чем разница между ними? 2. Как лучше всего создавать асинхронные задачи?
Заранее спасибо.