------------------------------------------------------版本1.2--------------------------------------------------------
mvp中的rxjava請求,實作隊列請求
------------------------------------------------------版本1.1--------------------------------------------------------
1.請求優化,去除多餘的類
2.mvp優化 修改的插件(謝謝MVPHelper作者) 在assets裡 MVPHelper_contract.jar
(最近自己開發項目越來越大,接口越來越多,發現model Impl 類太多,找起來也麻煩,是以把M層和V層放在了Contract包中,一個類搞定,p層還是單獨放,自動生成,并且初始化)
如果不使用mvp 不推薦用IRequestRx 直接請求,會失去noHttp的特性,例如請隊列等
String mUrl = "http://image.baidu.com/channel/listjson?pn=" + 1
+ "&rn=" + 22
+ "&tag1=%E6%98%8E%E6%98%9F&tag2=%E5%85%A8%E9%83%A8";
IRequest.get(this, mUrl)
.execute(new RequestListener() {
@Override
public void onSuccess(Response result) {
}
});
IRequest.get(this, mUrl)
.params("", "")
.loading(true)
.execute(new RequestListener() {
@Override
public void onSuccess(Response result) {
}
@Override
public void onFailed(int what, Response result) {
super.onFailed(what, result);
}
});
------------------------------------------------------版本1.0--------------------------------------------------------
一直想嘗試用mvp-rxjava-nohttp
看了不少别人寫的mvp的demo,例如T-mvp等 各有各的好,找到适合自己的就行
還好有個大牛出了MVPHelper插件,不然打死我也不會用mvp,因為寫的類太多。為了避免model類重名,我就把MVPHelper裡面小改了下,把LoginModel 改成ILoginModel,不喜歡可以忽略
看了Author: Othershe寫的mvp 就抽走了幾個mvp類
我寫mvp流程如果下:(僅參考)
1.寫view層的回調
2.在寫model rx回調
3.在寫 實作model層 (業務寫在這裡)
4.然後再寫p層
Map params = new HashMap<>();
IRequest.post(this, mUrl, params)
.loading(true)
.execute(PuBuLiuModel.class, new RequestArrayListener() {
@Override
public void onSuccess(Response result) {
Toast.makeText(MainActivity.this, JsonUtils.string(result.get()), Toast.LENGTH_SHORT).show();
}
@Override
public void onFailed(int what, Response result) {
super.onFailed(what, result);
}
});
IRequest.get(this, mUrl)
.loading(true)
.loadingTitle("努力中...")
.execute(new RequestListener() {
@Override
public void onSuccess(Response result) {
Toast.makeText(MainActivity.this, "擷取成功", Toast.LENGTH_SHORT).show();
}
});
IRequestRx.get(this,mUrl)
.execute(new Subscriber() {
@Override
public void onCompleted() {
}
@Override
public void onError(Throwable e) {
}
@Override
public void onNext(String s) {
}
});
IRequestRx.get(this,mUrl)
.execute(PuBuLiuModel.class, new Subscriber() {
@Override
public void onCompleted() {
}
@Override
public void onError(Throwable e) {
}
@Override
public void onNext(PuBuLiuModel puBuLiuModel) {
}
});