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

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

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

下边主要介绍RootView和RxPresenter

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

  • 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

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

  1. Android跟我一起来开发--微影之架构篇

    上一篇<Android跟我一起来开发--微影之开篇>中主要讲述了一下写这些博文的初衷,以及对项目中数据.架构.框架(依赖).目录结构作了一些简单的介绍.接下来本文主要针对MVP架构的个人理 ...

  2. Android跟我一起来开发--微影之开篇

    写在前头 酝酿了许久还是决定针对"微影"来发表几篇博文,一是可以跟大家一起学习分享,另一是感觉自己工作也快四年了手上没什么东西,对于一直在开源世界里挖掘偷用的惯犯感觉该是贡献自己小 ...

  3. Android Studio自定义模板 做开发竟然可以如此轻松 后篇

    ###1.概述 最近有很多人反馈,有些哥们不喜欢看文字性的东西,还有一些哥们根本就不知道我在搞啥子,那么以后我就采用博客加视频的方式,我们可以选择看视频讲解:http://pan.baidu.com/ ...

  4. android系统平台显示驱动开发简要:Samsung LCD接口篇『三』

    平台信息: 内核:linux3.4.39 系统:android4.4  平台:S5P4418(cortex a9) 作者:瘋耔(欢迎转载,请注明作者) 欢迎指正错误,共同学习.共同进步!! 关注博主新 ...

  5. javacv开发详解之11补充篇:使用批量多张图片制作gif动态图,再也不用担心不会制作动态图了

    javacv实战专栏目录: JavaCV实战专栏文章目录(JavaCV速查手册) 前言 前面写过视频.桌面屏幕录制apng和gif动态图,虽然已经满足大部分情况,但是没考虑到现在很多动态图都是使用多张 ...

  6. Android 音频开发(一) 基础入门篇

    今天主要讲解下Android音频开发的入门知识,希望对想入门却不知如何下手的朋友有所帮助,同时希望能得到高手的指点和帮助. 深入细化基础技能知识点 大致细化如下10个知识点. 音频开发的主要应用有哪些 ...

  7. Android音乐播放器的开发实例(2021新版-Java版)

    Android音乐播放器的开发实例 介绍 该项目旨在引导喜爱 Android 开发爱好者入门教程实例,可以一步一步的跟着来完成属于自己的项目开发过程. 此项目为基于 Java 语言开发,使用 Recy ...

  8. 基于Android + Web+ MySQL设计和开发微博应用

    基于Android + Web+ MySQL设计和开发微博应用 实践内容要求 客户端效果图 源码分享 微博应用系统设计 系统功能设计 关键问题设计 实践内容要求 ①用Android开发微博客户端: ② ...

  9. Android 开发者必知的开发资源

    英文原文:Bongzimo  翻译: ImportNew-黄小非 译文链接:http://www.importnew.com/3988.html Android 开发者必知的开发资源 随着Androi ...

最新文章

  1. Foursquare开源Rogue和Full-Loaded两款开发工具
  2. python软件代码示例-用Python写一个模拟qq聊天小程序的代码实例
  3. 语音识别(三)——声学模型, 解码器技术
  4. 计算机专业的吸引力,计算机专业文献翻译-面向对象编程具有多方面的吸引力.doc...
  5. C++ Socket编程步骤
  6. SwiftUI 很难赶上 UIKit?
  7. CC2530存储器映射
  8. dnf电脑服务器不稳定怎么办,Win10玩DNF间歇性卡顿怎么办?Win10系统玩DNF卡顿解决方法(2)...
  9. Android Media Framework(3): Stagefright框架流程解读
  10. 分类性能度量指标 : ROC曲线、AUC值、正确率、召回率、敏感度、特异度
  11. Mac如何拷贝文件到移动硬盘
  12. docker最新版本发布,附面试答案
  13. cocos2dx 精灵触摸
  14. 【离散数学】集合论基础
  15. matplotlib作图系列之内置颜色使用(一)
  16. 机器学习基础——香农熵、相对熵(KL散度)与交叉熵
  17. linux kernel idr机制
  18. 第一章: 微型计算机组成结构
  19. 英17岁少年开发应用获百万美元投资
  20. 手机上竟然也能用 Win10 ?一模一样啊!

热门文章

  1. python经典小游戏贪吃蛇_Python开发贪吃蛇小游戏
  2. 有源代码就可以自行开发通达信交易接口了吗?
  3. AJAX都有哪些优点和缺点
  4. 过拟合的原因和解决方法
  5. ffmpeg安装遇错:nasm/yasm not found or too old. Use --disable-x86asm for a crippled build.
  6. python re 模块及正则表达式调用认识 (2)
  7. 最新《JPA入门到精通JAVA进阶项目实战》
  8. 浅析在线教育行业发展所面临的困境
  9. 土星计划-藤本科植物方案第二期
  10. 好听的歌曲单片机c语言程序,用c语言在单片机AT89C51编写音乐程序,求程序,求求你们了...