RxJava Async task Android

Je suis en train de mettre en œuvre une tâche asynchrone à l'aide de RxJava dans Android.
J'ai essayé le code suivant et ça ne fonctionne pas. Il s'exécute sur le thread de l'INTERFACE utilisateur. Je suis l'aide de la version suivante de RxAndroid 0.24.0.

try {
            Observable.just(someMethodWhichThrowsException())
                    .subscribeOn(Schedulers.newThread())
                    .observeOn(AndroidSchedulers.mainThread())
                    .subscribe(s -> onMergeComplete());
        } catch (IOException e) {
            e.printStackTrace();
        }

Cependant, les œuvres suivantes de façon asynchrone pour moi.

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

Je suis en train d'essayer de comprendre les éléments suivants:
1. Quelle est la différence entre eux?
2. Quelles sont les bonnes pratiques lors de la création async tâches?

Merci d'avance.

OriginalL'auteur muneikh | 2015-04-16