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。

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

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

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

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

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


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

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


mvp的Base类(BaseMVPModule、BaseMVPView、BaseMVPPresenter)

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

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

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

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

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


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

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

clickBtn()中,调用mPresenter的业务方法,并查看其实现:通过mModule的网络请求,返回disposable,并调用addDisposable()将其加入disposable队列,这样就完成了一次网络请求。
Android一站式框架整合——Rui使用详细指南(进阶篇)

再看看BaseActivityonDestroy()生命周期方法,在结束生命时,将disposable队列里的事件,统统消费(结束)掉。这样就避免了网络请求可能导致的内存泄漏问题。从而取代了基础版本中使用RxLifeCycle来处理相同的问题。
Android一站式框架整合——Rui使用详细指南(进阶篇)


相关文章:

  • 2021-06-24
  • 2022-12-23
  • 2021-06-13
  • 2021-04-22
  • 2021-07-19
  • 2021-11-28
  • 2021-07-11
  • 2021-10-18
猜你喜欢
  • 2021-12-29
  • 2022-12-23
  • 2021-08-17
  • 2021-11-25
  • 2021-06-11
  • 2021-08-17
相关资源
相似解决方案