2017-07-20 8 views
1

私は混乱しています。私はいくつかの長年の仕事(約5秒)を行い、結果としてStringを返す方法を持っています。私はすべてが正常に動作しますObservable.just()Observable.fromCallable()に変更した後、私のdoJob()方法はmainThread に計算RxJava just()計算スレッド

private Observable<String> getJobObservable() { 
    return Observable.just(doJob()); 
} 

しかし、たとえで.subscribeOn(Schedulers.computation()).observeOn(Schedulers.computation())しかし: は、私はこのようなObservableなめらかにその機能を包みました。 なぜObservable.just()がスレッドの変更に反応しないのですか?

答えて

3

あなたは

Object o = doJob(); 
return Observable.just(o); 

あなたがすべてでObservable.just(o)を持っていない場合、doJob()が実行さんと等価である

return Observable.just(doJob()); 

を書く場合は? doJob()またはoが括弧の間に入れられているというだけで、fromCallableで確認した場合とは異なり、何らかの形でdoJobの実行が延期されることを意味しません。

関連する問題