Rx java 可观察的,可观察的
讨论使用Observable.just、Observable.create和Observable.defer创建可观察对象 假设我有这个:Rx java 可观察的,可观察的,rx-java,Rx Java,讨论使用Observable.just、Observable.create和Observable.defer创建可观察对象 假设我有这个: List<File> fileIOFunction() { // does some file io operations } OBSERVABLE.subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) List fileIOFuncti
List<File> fileIOFunction() {
// does some file io operations
}
OBSERVABLE.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
List fileIOFunction(){
//执行一些文件io操作
}
OBSERVABLE.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
如果可以观察到,文件io操作在哪个线程上运行:
Observable.create(
new Observable.OnSubscribe<List<File>>() {
@Override
public void call(Subscriber<? super List<File>>
subscriber) {
subscriber.onNext(fileIOFunction());
}
Observable.create(
新的可观察的。OnSubscribe(){
@凌驾
public void call(Subscriber因为它将在调用线程上运行,因为fileIOFunction()将被急切地调用。Defer和Create将在Schedulers上运行。io()由于subscribeOn,将切换到AndroidSchedulers.mainThread(),因为observeOn(切换线程).Create和Defer都是惰性的。您只需将System.out.println(Thread.currentThread())
添加到fileIOFunction()
,实现这两种情况并运行它们。谢谢!我不知道Thread.currentThread()。附加getName()以打印哪个线程。
Observable.defer(new Func0<Observable<List<File>>>() {
@Override
public Observable<List<File>> call() {
return Observable.just(fileIOFunction());
});