Как дополнение к @EpicPandaForce:
Observable # просто нетерпелив, Observable # fromCallable ленив.
Пример eager: Observable.just (methodCall ()) -> first methodCall будетоценивать во время сборки.methodCall () - Значение будет захвачено и использовано как входной параметр для Observable # just.Это значение будет сохранено в наблюдаемой.Все к этому моменту уже произошло без какой-либо подписки.При подписке на созданный Observable захваченное значение будет воспроизводиться для каждой подписки.
Пример lazy: Observable.fromCallable (() -> methodCall ()) -> во время сборки наблюдаемое будет создано со ссылкойв лямбду.methodCall () не будет вызываться во время сборки.Лямбда-исполнение будет выполняться при каждой подписке.
Если вы хотите отложить дорогостоящую работу до первой подписки, вы должны использовать Observable # defer / Observable # fromCallable.При работе с синхронизацией.Значения, которые уже присутствуют или очень дороги для создания, вы должны использовать Observable # just.
Также, пожалуйста, посмотрите на https://github.com/ReactiveX/RxJava#assembly-time (Время сборки / Время подписки / Время выполнения)