前段時間一直在看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