Dagger+MVP+Retrofit+Rxjava+Rxlifecycle Demo
来源:互联网 发布:js刷新父页面的frame 编辑:程序博客网 时间:2024/06/05 19:05
地址:https://github.com/rongkun/Dagger2Rxjava2Retrofit2Demo
kotlin版本:https://github.com/rongkun/BaseKotlin
说明:
1、运行环境:Android studio3.0+(不能用2.3及以下)
2、代码介绍:
(1)baselib介绍:
如上图,base文件主要包含BaseActivity 、BaseView等基础类,精简代码,方便开发
dagger文件包含dagger2的各种配置,PerActivity为自定义注解,在Activity使用dagger2配置时经常会用到。当全局单例是用的是@Singleton,局部单例用@Scope,这里为了减少代码量自定义了PerActivity
dagger下NetModule.class为retrofit2的配置,在app全局提供单例
如何给全局提供单例呢?
首先看Base文件下的BaseApplication
代码中我们可以看到,appli在启动时就创建了DaggerAppcomponent,有人下载demo后会显示找不到文件错误,点击工具类build->make project即可解决
(2)app主module介绍
UML图解
网络配置在net文件夹下,如图:
retrofi结合rxjava,采用背压式控制,get方法。例程为获取天气接口,baseUrl在baselib中配置。如果有不同的网址,可直接写全路径,如http://www.***/***.com/open/weather,这样将不会拼接baseurl
重点部分:
activities.main为Activity使用例子,MainContract为View及Presenter的接口。MainActivity将实现该View接口,MainPresenter实现Present接口。
Activity中调用
.appcomponent获取全局的单例,mainmodule获取局部单例(可在MainModule添加所需创建的对象),最后调用inject将这些数据注入到该Activity中
使用@Inject注入所需对象。MainPresenter的构造函数使用了@Inject注解,当创建MainPresenter时将自动调用@Inject注解的函数。因为没有在module写MainPresenter的创建方法,所以写了setpresent方法将presenter实例传给Activity
- Dagger+MVP+Retrofit+Rxjava+Rxlifecycle Demo
- MVP+Retrofit+RxJava+Dagger框架
- 几篇RxJava/MVP/Retrofit/Dagger文章
- retrofit-rxjava封装、mvp-retrofit-rxjava demo
- Mvp+Retrofit+Rxjava+RxLifecycle的封装和使用
- MVP+Retrofit+RxJava的demo
- Retrofit 2.0+RxJava+MVP demo
- mvp demo:mvp+rxjava+retrofit(okhttp)+greendao
- MVPArms MVP+Dagger+Rxjava+Retrofit快速集成框架
- 仅仅有几个基类, 仅仅用Dagger注入几个工具类就敢叫MVP+Dagger+Retrofit+Rxjava框架?
- RxJava + Retrofit + OKHttp + RxLifecycle进一步封装网络
- Android -- 带你一点点封装项目 MVP+BaseActivity+Retrofit+Dagger+RxJava(三)
- Android--带你一点点封装项目 MVP+BaseActivity+Retrofit+Dagger+RxJava(一)
- mvp下rxjava+retrofit的登录网络请求demo
- MVP+Retrofit+Rxjava+ButterKnife+Fresco+Recyclerview+GreenDao+泛型+完整Demo
- MVP+Dagger2+Retrofit+Rxjava
- Retrofit实践(MVP+RxJava)
- Rxjava+MVP+Retrofit强强联合
- Java并发编程:Callable、Future和FutureTask
- Exception in thread "main" org.hibernate.HibernateException: Access to DialectResolutionInfo cannot
- table固定头部,表格tbody可上下左右滑动
- Edittext做图文混排编辑
- 一个经典的PHP文件上传类分享
- Dagger+MVP+Retrofit+Rxjava+Rxlifecycle Demo
- spring boot 二 集成 FastJson
- ConstraintLayout
- Mongodb亿级数据量的性能测试
- tensorflow下有关图片的随机翻转、随机调整亮度以及对比度函数
- Python开发者2017应该关注的7个类库
- 【机器学习】最大熵模型推导
- 是
- 数据结构