博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mvp和rxjava继续学习
阅读量:6514 次
发布时间:2019-06-24

本文共 3600 字,大约阅读时间需要 12 分钟。

hot3.png

google 官方的mvp例子:

https://github.com/googlesamples/android-architecture/tree/todo-mvp-dagger/

国内集成了很多目前热门框架的项目:

http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2016/1125/6803.html

android进阶篇 MVP+Retrofit+RxJava框架结合:

http://m.2cto.com/kf/201608/538697.html

响应式编程:RxJava/RxAndroid 使用实例实践:

http://www.jianshu.com/p/031745744bfa

rxjava使用场景:

http://blog.csdn.net/lzyzsd/article/details/50120801

http://blog.csdn.net/aiynmimi/article/details/53382567

Rxjava 官方github

https://github.com/ReactiveX/RxJava/

【腾讯大神】一步一步实现Android的MVP框架

http://dev.qq.com/topic/5799d7844bef22a823b3ad44

http://blog.csdn.net/jdsjlzx/article/details/52415615

给 Android 开发者的 RxJava 详解

http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/1012/3572.html#toc_17

 

retrofit2和rxjava2应用:

compile 'com.google.code.gson:gson:2.7'compile( 'com.squareup.retrofit2:retrofit:2.2.0'){    exclude group: 'com.squareup.okhttp3'}compile ('com.squareup.retrofit2:converter-gson:2.2.0'){    exclude group : 'com.google.code.gson'    exclude group: 'com.squareup.okhttp3'}compile ('com.squareup.retrofit2:adapter-rxjava2:2.2.0'){    exclude group: 'io.reactivex'    exclude group: 'com.squareup.okhttp3' }compile 'io.reactivex.rxjava2:rxjava:2.0.8'compile 'io.reactivex.rxjava2:rxandroid:2.0.1'compile 'com.squareup.okhttp3:logging-interceptor:latest.release'compile 'com.squareup.okhttp3:okhttp:latest.release'compile 'com.squareup.okio:okio:latest.release'

遇到一个问题,不知道flatmap和doOnNext怎么配合使用,问题见注释:

@Override    public void start(final String agentId, String typeId) {        mRootView.showProgress();        LogUtils.e("main Thread:"+Thread.currentThread().getId());        Disposable o = mModel.getSecondaryGoodsTypes(agentId, typeId)                .subscribeOn(Schedulers.io())                .observeOn(AndroidSchedulers.mainThread())                .doOnNext(new Consumer
>>() { @Override public void accept(@NonNull BaseResponse
> listBaseResponse) throws Exception { LogUtils.e("doOnNext current Thread:"+Thread.currentThread().getId()); List
goodsTypes = listBaseResponse.getData(); mRootView.updateTypeList(goodsTypes); } }).doOnError(new Consumer
() { @Override public void accept(@NonNull Throwable throwable) throws Exception { LogUtils.e("doOnError current Thread:"+Thread.currentThread().getId()); mRootView.hideProgress(); mRootView.showCommonErrorPage(); } }) .observeOn(Schedulers.newThread()) .flatMap(new Function
>, Observable
>>() { @Override public Observable
> apply(@NonNull BaseResponse
> listBaseResponse) throws Exception { LogUtils.e("flatMap apply current Thread:"+Thread.currentThread().getId()); //先通过一级分类id拿商品二级分类,再默认拿第一个分类下的商品列表 if (listBaseResponse != null) { List
list = listBaseResponse.getData(); if (list != null && list.size() > 0) { int secondTypeId = list.get(0).getId(); return mModel.getGoodsByType(agentId, String.valueOf(secondTypeId), 20, 0); } } return Observable.just(null); } }) //.observeOn(AndroidSchedulers.mainThread())//加上这行就没有回调了,不加的话就是在子线程而不是在主线程 .subscribeWith(new DisposableObserver
>() { @Override public void onNext(BaseResponse
goodsListBaseResponse) { LogUtils.e("subscribeWith onNext current Thread:"+Thread.currentThread().getId()); } @Override public void onError(Throwable e) { LogUtils.e("subscribeWith onError current Thread:"+Thread.currentThread().getId()); mRootView.hideProgress(); } @Override public void onComplete() { mRootView.hideProgress(); } });

 

转载于:https://my.oschina.net/u/268088/blog/872466

你可能感兴趣的文章
【甘道夫】Apache Hadoop 2.5.0-cdh5.2.0 HDFS Quotas 配额控制
查看>>
敏捷测试初见
查看>>
一张图看懂normal,static,sealed,abstract 的 区别
查看>>
Task的使用
查看>>
grep和正则表达式
查看>>
【转载】 删除Win10“这台电脑”中的6个文件夹
查看>>
MFC常用函数总结
查看>>
Nginx配置域名转发实例
查看>>
s:iterator巧妙控制跳出循环
查看>>
移动互联网思维
查看>>
iOS_38_手势
查看>>
微信整合的时候 出现这个“redirect_uri 参数错误”
查看>>
财务统计
查看>>
运行该脚本出现/bin/sh^M: bad interpreter: No such file or directory
查看>>
关于div一侧固定,另一侧自适应
查看>>
s3c2440的A/D转换应用
查看>>
如何将 Java 项目转换成 Maven 项目
查看>>
Java字符串的最大长度
查看>>
在js里双引号里又加单引号的解决方案常用WdatePicker
查看>>
算法笔记_038:特殊回文数(Java)
查看>>