本文主要是介绍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(),其中的DaggerAppComponent是Dagger通过AppComponent类生成的。而ActivityBindingModule、MainModule、FragmentBindingModule作为AppComponent的modules。
而为了能让安卓4大组件都能在Dagger容器中使用,必须将其注入容器。在ActivityBindingModule中:用注解声明组件,这样Dagger就能将其注入其中。Fragment的使用方法也相同。
BaseActivity、BaseFragmnet代码 : BaseActivity继承自 DaggerAppCompatActivity,并泛型关联了BaseMVPPresenter,可以看到当中的P mPresenter是通过注入的方式获取的。BaseFragment大致同BaseActivity的内容。
mvp的Base类(BaseMVPModule、BaseMVPView、BaseMVPPresenter)
BaseMVPModule : 在BaseModel中直接提供了网络请求的功能。包括requestGet、requestPost…..
BaseMVPPresenter : 此时的model层是通过注入获取的。
BaseMVPView : 提供了loading的显示和消失,不附图。
在mvp + dagger的结构上实现一次网络请求,并对比RxLifeCycle :
打开MvpTestActivity,其中泛型TestPresenter继承BaseMVPPresenter。在initTitleBar()当中初始titleBar样式,在initMainView()当中加入视图,在initDataAndView()当中调用mPresenter.onAttachView(this)来关联视图。
在clickBtn()中,调用mPresenter的业务方法,并查看其实现:通过mModule的网络请求,返回disposable,并调用addDisposable()将其加入disposable队列,这样就完成了一次网络请求。
再看看BaseActivity的onDestroy()生命周期方法,在结束生命时,将disposable队列里的事件,统统消费(结束)掉。这样就避免了网络请求可能导致的内存泄漏问题。从而取代了基础版本中使用RxLifeCycle来处理相同的问题。
这篇关于Android一站式框架整合——Rui使用详细指南(进阶篇)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!