01.最普通的案例分析
如下所示,指定线程控制后简单的调用。
- 第一种方式
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35MovieModel model = MovieModel.getInstance();
Disposable subscribe = model.getHomePage()
//线程控制(也称为调度 / 切换),即讲解功能性操作符中的:subscribeOn() & observeOn()
//功能性操作符subscribeOn() & observeOn()作用
//线程控制,即指定 被观察者 (Observable) / 观察者(Observer) 的工作线程类型
// 1. 指定被观察者 生产事件的线程
.subscribeOn(Schedulers.io())
// 2. 指定观察者 接收 & 响应事件的线程
.observeOn(AndroidSchedulers.mainThread())
// 3. 最后再通过订阅(subscribe)连接观察者和被观察者
.subscribe(new Consumer<MovieBean>() {
@Override
public void accept(MovieBean movieBean) throws Exception {
LogUtils.e(TAG+"----"+"accept(MovieBean movieBean)");
if (movieBean != null && movieBean.getRet() != null) {
mView.setAdapterData(movieBean);
}
}
}, new Consumer<Throwable>() {
@Override
public void accept(Throwable throwable) throws Exception {
LogUtils.e(TAG+"----"+"accept(Throwable throwable)");
}
}, new Action() {
@Override
public void run() throws Exception {
LogUtils.e(TAG+"----"+"run()");
}
}, new Consumer<Disposable>() {
@Override
public void accept(Disposable disposable) throws Exception {
LogUtils.e(TAG+"----"+"accept(Disposable disposable)");
}
});
mSubscriptions.add(subscribe);