工程需要依赖的包
compile 'com.jakewharton.rxbinding:rxbinding:0.4.0'
compile 'io.reactivex:rxjava:1.2.7'
compile 'io.reactivex:rxandroid:1.2.1'
代码
private class LoginInfo {
private String token;
}
private class UserInfo {
private String userInfoJson;
}
Observable.just(1).flatMap(new Func1<Integer, Observable<LoginInfo>>() {
@Override
public Observable<LoginInfo> call(Integer integer) {
// 从网络获取数据
LoginInfo loginInfo = new LoginInfo();
return Observable.just(loginInfo);
}
}).flatMap(new Func1<LoginInfo, Observable<UserInfo>>() {
@Override
public Observable<UserInfo> call(LoginInfo loginInfo) {
// 从网络获取用户信息,带入token 啥的。。
UserInfo userInfo = new UserInfo();
return Observable.just(userInfo);
}
}).observeOn(AndroidSchedulers.mainThread()) // 线程切换
.subscribeOn(Schedulers.io())
.subscribe(new Subscriber<UserInfo>() {
@Override
public void onCompleted() {
}
@Override
public void onError(Throwable e) {
}
@Override
public void onNext(UserInfo o) {
// 从网络获取到用户数据,本地保存,然后 do something
}
});