学习小目标:
1、使用RxJava + Retrofit 进行网络请求数据,并在TextView中显示结果
2、掌握RxJava线程切换的使用方法
RxJava中的线程切换
一般来说我们在使用网络请求数据后需要使用View来显示,网络请求当然是在子线程中运行,当获取到数据后就需要切换到UI线程来显示,否则会报错,RxJava中已经帮我们处理好了线程切换的问题。
Observable类两个接口
@SchedulerSupport(SchedulerSupport.CUSTOM)
public final Observable<T> subscribeOn(Scheduler scheduler) {
ObjectHelper.requireNonNull(scheduler, "scheduler is null");
return RxJavaPlugins.onAssembly(new ObservableSubscribeOn<T>(this, scheduler));
}
@SchedulerSupport(SchedulerSupport.CUSTOM)
public final Observable<T> observeOn(Scheduler scheduler) {
return observeOn(scheduler, false, bufferSize());
}
上面两个接口是用来做什么用的呢?
Observable<T> subscribeOn(Scheduler scheduler)
注释直接翻译:在指定的Scheduler上异步订阅Observers到此ObservableSource
听起来不太好理解,应该这样说:在指定的调度线程上给可观察源异步的订阅观察者
Observable<T> observeOn(Scheduler scheduler)
注释直接翻译:修改ObservableSource以在指定的Scheduler上执行其发射和通知
也不太好理解,可以这样说:修改被观察源到指定的调度线程上去执行发射或通知(也就是说在另一个线程上去执行某些方法)
看了上面解释可能还是一头雾水,现在结合世界场景来理解