我正在阅读一篇教程:http://code.tutsplus.com/tutorials/getting-started-with-reactivex-on-android--cms-24387,它涉及RxAndroid,但与RxJava几乎相同。我不确定是否完全理解了该概念。
下面我写了一个方法和一个示例用法。
我的问题是:这是实现函数的正确方式吗,以便我可以在其他线程上异步运行它们? 实际上,它们只会返回创建的Observable,运行真正的代码并处理错误等所有内容。
或者说这是错误的,那么我想知道正确的方法。
下面我写了一个方法和一个示例用法。
我的问题是:这是实现函数的正确方式吗,以便我可以在其他线程上异步运行它们? 实际上,它们只会返回创建的Observable,运行真正的代码并处理错误等所有内容。
或者说这是错误的,那么我想知道正确的方法。
Observable<String> googleSomething(String text){
return Observable.create(new Observable(){
@Override
public void call(Subscriber<? super String> subscriber) {
try {
String data = fetchData(text); // some normal method
subscriber.onNext(data); // Emit the contents of the URL
subscriber.onCompleted(); // Nothing more to emit
} catch(Exception e) {
subscriber.onError(e); // In case there are network errors
}
}
});
}
googleSomething("hello world").subscribeOn(Schedulers.io()).observeOn(Schedulers.immediate()).subscribe(...)
Schedulers.immediate()是否用于在当前线程上执行订阅代码?它在javadoc中说:“创建并返回一个调度程序,立即在当前线程上执行工作。”,但我不确定。