想请问下老师的BasePresenter
来源:3-3 完成第一个Restful接口
慕用1394343
2019-06-11
@Override
public void destroy() {
T view = mView;
mView = null;
if (view != null) {
// 把Presenter设置为NULL
view.setPresenter(null);
}
}
老师这是为了防止内存泄漏还是什么吗? 如果是的话,那如果不写这段,会在什么情况下发生呢
写回答
2回答
-
是的,这里是防止内存泄漏,如果不写的话,由于presenter中经常进行一些耗时操作,例如网络请求,但是presenter持有了Activity的强引用,如果在请求结束之前,Activity被销毁,那么会导致presenter一直持有Activity的引用,使得Activity无法被回收,而发生内存泄漏。
012019-06-12 -
Qiujuer
2019-06-19
关于为什么回答问题不及时的原因:
http://www.imooc.com/article/288131
在咱们的开发中需要主动调用destroy,然后做解绑操作,也可以使用虚引用来解决内存泄露问题。
看着问题解决了,非常高兴~~
00
相似问题