想必大家对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就会有很多重复的代码。<