我一直在尝试在 Android 中使用 RxJava,但我试图找出 fromCallable 和 Just 之间的区别。两者都只接收一次数据,而 Create 可以多次接收数据。这是我用来试验的代码:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listenCallable();
listenJust();
}
private void listenCallable() {
CompositeDisposable compositeDisposable = new CompositeDisposable();
Disposable disposable = Shooter.getCallable().subscribe(i -> {
Log.d("Tag", "Listen Callable: " + i);
});
compositeDisposable.add(disposable);
compositeDisposable.dispose();
}
private void listenJust() {
CompositeDisposable compositeDisposable = new CompositeDisposable();
Disposable disposable = Shooter.getJust("Jay").subscribe(i -> {
Log.d("Tag", "Listen Just " + i);
});
compositeDisposable.add(disposable);
compositeDisposable.dispose();
}
}
和发出数据的类:
public class Shooter {
public static Observable<String> getCallable() {
return Observable.fromCallable(new Callable<String>() {
@Override
public String call() throws Exception {
try {
Thread.sleep(500);
} catch (Exception e) {}
return "Callable Results";
}
});
}
public static Observable<String> getJust(String input) {
try {
Thread.sleep(500);
} catch (Exception e) {}
return Observable.just("Just Results " + input);
}
}
最佳答案
Observable.fromCallable(
类似于
Observable.defer {
try {
Observable.just(...)
} catch(e: Throwable) {
Observable.error(e)
}
}
因此,just
同步运行,而 fromCallable
可以通过 subscribeOn
延迟到另一个 Scheduler
(并执行“稍后”)。
关于java - 安卓 RxJava 2 : What is the difference between fromCallable and Just?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52504124/