老师,有个关于mvp架构网络请求的问题

来源:11-1 如何解答系统设计类问题?-1

菲迪亚斯

2019-09-08

前几天面试,被问到如果项目里用了mvp框架,在M层处理网络请求还没结束的时候,将这个页面关闭了,但是这时候Activity还被持有引用,会导致内存泄漏,那么该怎么处理?
想了好久也没想出来,老师能指点一下吗?

写回答

2回答

bennyhuo

2019-09-08

还有一个问题就是,m要能支持好取消操作,在取消后一定要做好资源释放之类的工作下取消才有效。如若不然,那就是m层的bug。

1
1
菲迪亚斯
谢谢老师!
2019-09-08
共1条回复

bennyhuo

2019-09-08

这时候通常的做法就是,如果页面销毁,那么未返回的网络请求就要做取消,也就是说view销毁了,跟view绑定的p也应当销毁,同时将m中发起的请求取消,这时候通常就不会存在泄露问题了。这是一个比较正常或者应当处理好的操作。

当然,面试的时候也可以提下弱引用的事儿,不过我觉得弱引用的情况是不知道什么时候被释放,所以对于这个场景来说可以避免泄露,但没有用的必要。

1
0

大厂资深面试官 带你破解Android高级面试

改变视野和思维 深度与广度兼备的 Android 进阶面试指导课程

1636 学习 · 222 问题

查看课程