Android 跟我一起来开发 -- 微影之架构补充篇

1,049 阅读2分钟
原文链接: www.jianshu.com


接上一篇《Android跟我一起来开发--微影之架构篇》,上一篇大概讲了讲本项目中mvp的用法,今天主要讲一下base包里的东西,一些基础类(公用方法的抽取,引用在生命周期的创建销毁)。当然了之前如果有不懂的地方可以留言。再次感谢各位大神的无私奉献(ヽ(≧Д≦)ノ)。

先po一张base包下的文件上来


base包

  • BaseActivity 基础的Activity类,主要是一些生命周期的日志输出,沉浸式状态栏的初始设置,主题的初始化,activity管理的注入注销,泛型presenter的绑定置空等。
  • BaseFragment 基础的Fragment类,功能和BaseActivity类似,其中将布局绑定抽象成了抽象方法子类实现,在onCreateView和onDestroyView中做一些事件的注册注销,BaseFragment还实现了懒加载的功能,其中懒加载的功能会在后边单独开一篇来介绍。
  • BasePresenter 基础的Presenter,主要有attachView和detachView两个接口,用于view的连接和断离。
  • SwipeBackActivity 右滑关闭的Actiivty

下边主要介绍RootView和RxPresenter

RootView其实是继承自LinearLayout的一个控件,其中根据所有view的使用清空抽取了一些公共变量,公共方法和一些抽象方法。


RootView

  • mActive是否属于当前活跃view,它的判定主要放在onAttachedToWindow和onDetachedFromWindow,在Presenter根据view是否活跃来取决于是否继续做一些耗时操作(继续读取网络数据等)
  • mContext Context的应用
  • unbinder ButterKnife的绑定
  • mPresenter 在RootView中做view与presenter的绑定与解绑 具体操作如下

RxPresenter是基于Rx的封装,控制订阅的生命周期
其中主要有两个方法:addSubscribe和unSubscribe,订阅和取消订阅。在view的生命周期中CompositeSubscription持有所有的Subscriptions,在attachView和detachView中来添加订阅和取消所有订阅。attachView和detachView的调用时机刚才在RootView中也做了说明。



以上所有Base类算讲完了,具体的使用方法可以参照源码



下载地址:微影
源码地址:Ghost
欢迎大家下载和Star