Android一站式框架整合——Rui使用详细指南(进阶篇)

Rui使用详细指南——进阶篇(谷歌Mvp + Dagger2)


本篇在Rui使用详细指南(基础篇)的基础上,加入了Mvp模式和Dagger2.

GitHub地址 :Rui

视频地址 :

内容包括:主要内容为第4点,实现一次网络请求,并对比RxLifeCycle.

1.Dagger的使用搭建,以及ActivityBindingModule、MainModule、FragmentBindingModule内容
2.BaseActivity、BaseFragmnet代码
3.mvp的Base类(BaseMVPModule、BaseMVPView、BaseMVPPresenter)
4.在mvp + dagger的结构上实现一次网络请求,并对比RxLifeCycle


Dagger的搭建 : 可以看到RuiApp 已经继承自DaggerApplication,并重写applicationInjector(),其中的DaggerAppComponentDagger通过AppComponent类生成的。而ActivityBindingModuleMainModuleFragmentBindingModule作为AppComponent的modules。

这里写图片描述

这里写图片描述

而为了能让安卓4大组件都能在Dagger容器中使用,必须将其注入容器。在ActivityBindingModule中:用注解声明组件,这样Dagger就能将其注入其中。Fragment的使用方法也相同。

这里写图片描述

这里写图片描述


BaseActivity、BaseFragmnet代码BaseActivity继承自 DaggerAppCompatActivity,并泛型关联了BaseMVPPresenter,可以看到当中的P mPresenter是通过注入的方式获取的。BaseFragment大致同BaseActivity的内容。

这里写图片描述


mvp的Base类(BaseMVPModule、BaseMVPView、BaseMVPPresenter)

BaseMVPModule : 在BaseModel中直接提供了网络请求的功能。包括requestGetrequestPost…..

这里写图片描述

BaseMVPPresenter : 此时的model层是通过注入获取的。

这里写图片描述

BaseMVPView : 提供了loading的显示和消失,不附图。


在mvp + dagger的结构上实现一次网络请求,并对比RxLifeCycle :
打开MvpTestActivity,其中泛型TestPresenter继承BaseMVPPresenter。在initTitleBar()当中初始titleBar样式,在initMainView()当中加入视图,在initDataAndView()当中调用mPresenter.onAttachView(this)关联视图

这里写图片描述

clickBtn()中,调用mPresenter的业务方法,并查看其实现:通过mModule的网络请求,返回disposable,并调用addDisposable()将其加入disposable队列,这样就完成了一次网络请求。
这里写图片描述

再看看BaseActivityonDestroy()生命周期方法,在结束生命时,将disposable队列里的事件,统统消费(结束)掉。这样就避免了网络请求可能导致的内存泄漏问题。从而取代了基础版本中使用RxLifeCycle来处理相同的问题。
这里写图片描述


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值