package com.example.jingbin.cloudreader.model; import com.example.jingbin.cloudreader.bean.GankIoDataBean; import com.example.jingbin.cloudreader.http.HttpClient; import com.example.jingbin.cloudreader.http.RequestImpl; import rx.Observer; import rx.Subscription; import rx.android.schedulers.AndroidSchedulers; import rx.schedulers.Schedulers; /** * Created by jingbin on 2017/1/17. * 分类数据: http://gank.io/api/data/数据类型/请求个数/第几页 的Model * 好处之一是请求数据接口可以统一,不用每个地方都写请求的接口,更换接口方便。 * 其实代码量也没有减少多少,但维护起来方便。 */ public class GankOtherModel { private String id; private int page; private int per_page; public void setData(String id, int page, int per_page) { this.id = id; this.page = page; this.per_page = per_page; } public void getGankIoData(final RequestImpl listener) { Subscription subscription = HttpClient.Builder.getGankIOServer().getGankIoData(id, page, per_page) .subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()) .subscribe(new Observer<GankIoDataBean>() { @Override public void onCompleted() { } @Override public void onError(Throwable e) { listener.loadFailed(); } @Override public void onNext(GankIoDataBean gankIoDataBean) { listener.loadSuccess(gankIoDataBean); } }); listener.addSubscription(subscription); } }