安卓MVP浅析及Presenter的生命周期问题

相关文章:

Android:聊聊我所理解的MVP (文章一:简书 阅读量较少 但是是好文章 MVP深入讲解)

Android:聊聊 MVP 中 Presenter 的生命周期  (文章二:简书 阅读量较少 但是是好文章 设计Presenter的生命周期)

安卓MVP浅析及Presenter的生命周期问题 (文章三:CSDN 3k阅读量)

正文:

文章三的一段介绍:

Presenter控制逻辑,也就是控制网络操作,绑定数据,一系列逻辑都在这。那么,当activity关闭以后,Presenter怎么处理网络请求,异步操作呢?

比如上面的loadData(),如果acitivity已经关闭了,而网络操作又没走完,就会内存泄漏,会不会空指针不好说,view虽然持有p,但是也不能在Activity的onDestroy里面直接的将p=null吧。对象=null也只是断开引用而已,还并不是真的释放,这样没用的,而且p还持有view呢,异步也不会因此结束。所以得有个接口告诉p,我要挂了,你也自杀吧。

所以:

interface BasePresenter {

  void onStart();

   void onDestroy();

}

让所有的Presenter都继承BasePresenter,然后在activity中相应的生命周期里面调用,在相应的方法里面,初始化、结束异步操作,释放资源,将view=null;

而在activity里面,由于Presenter并没有view的引用了,所以p随着activity的销毁也就跟着销毁了,不会造成上下文的泄漏等。

总结:此方法比较初级,看着也不是那么高大上。
 

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值