前段时间一直在看Rxjava方面的博客,终于找到了一篇个人认为入门最详细的博客——《给 Android 开发者的 RxJava 详解》作者扔物线。
网址:http://gank.io/post/560e15be2dca930e00da1083。
这大神讲的非常详细,然而智商有限,我看了好几遍才略懂一二。所以打算写写博客以便以后复习。
本文的例子采用retrofit和Rxjava结合,获取手机号码归属地。具体可以看我前面的一篇博客,本文只对获取的结果进行讲解。
如果不采用map,那么代码是这样写的:
phone.getHaoMa(meditview.getText().toString(), key)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Subscriber<PhoneNumInfo>() {
@Override
public void onCompleted() {
}
@Override
public void onError(Throwable e) {
}
@Override
public void onNext(PhoneNumInfo phoneNumInfo) {
mtext.setText(phoneNumInfo.getResult().getCity());
}
});
可知通过返回的photoNumInfo结果获取号码城市信息。
如果采用map(),代码如下:
phone.getHaoMa(meditview.getText().toString(), key)
.map(new Func1<PhoneNumInfo, String>() {
@Override
public String call(PhoneNumInfo phoneNumInfo) {
return phoneNumInfo.getResult().getCity();
}
})
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Subscriber<String>() {
@Override
public void onCompleted() {
}
@Override
public void onError(Throwable e) {
}
@Override
public void onNext(String s) {
mtext.setText(s);
}
});
将返回的结果phoneNumInfo通过map直接提取当中的city