MVP:有呼吸的Android架构
来源:互联网 发布:linux查看根目录大小 编辑:程序博客网 时间:2024/04/28 09:28
想必大家对MVP框架都比较熟悉了,今天和大家分享几个在MVP框架中比较核心的要点。
思考几个问题:
(1)后台异步处理任务没有完成,presenter会持有View的引用,此时返回退出了Activity,后台异步的动作不会立即停止,这里就会有内存泄漏的隐患。
解决方案:在presenter中加入管理view生命周期的方法。
方案原理:presenter中增加了类似的生命周期的方法,在退出Activity的时候取消持有Activity。
(2)在销毁后需要思考一点,后台的延时操作返回时,这个时候view被销毁了,如果接着去调用view的方法就会抛出空指针异常。
解决方案:在回用view的方法时,首先判断当前view是否已被置为null。
方案原理:根据当前的状态来控制是否需要回到View的方法,避免了在Activity被回收后,继续调用view的回调方法处理更新控件,导致程序crash。
(3)因为presenter的生命周期方法都会有,所以每个Activity去绑定View和解绑View就会有很多重复的代码。
解决方案:所以我们定义一个BasePresenter,在其中定义绑定View和解除绑定的方法(BasePresenter要使用泛型,因为不能限定死传入的View。)。
方案原理:利用泛型和继承的方式构建动态化。
(4)BaseView:一般显示加载内容的界面,都会有showLoading和hideLoading两个方法。
解决方案:定义BaseView。
方案原理:利用继承的优点,子类View就可以直接继承自BaseView,共享方法和变量。
ok,直接看代码。
2 0
- MVP:有呼吸的Android架构
- 架构:Android的MVP
- android的mvp架构
- android的MVP架构
- Android MVP架构的使用
- Android mvp 架构的自述
- android下的MVP架构
- Android mvp 架构的自述
- Android MVP架构的自述
- Android mvp 架构的自述
- Android mvp 架构的自述
- 浅析android的mvp架构
- Android MVP架构和MVC架构比较(有代码示例)
- android MVP——mvp架构的应用和优化
- MVP (1)- Android mvp 架构的自述
- google 推出android的MVP架构
- Android MVP 架构最简单的例子!
- Android的设计架构MVP,MVC
- SwipeRefreshLayout和ViewPager滑动冲突的原理分析及解决方案
- RSA的java实现
- 通过域名查询IP的4种方法
- 关于一只开车的HowarLi
- 数据结构之快排
- MVP:有呼吸的Android架构
- 如何正确地写出单例模式
- SeaJS与RequireJS的区别
- 多线程异步机制Handler以及AsyncTask
- [易飞]自定义开窗
- css之定位详解
- 入门———— Linux后门技术及实践 20160616
- Java, SSH 框架
- java的4个核心技术