
1 lifewinner OP 想了好久都没想明白 |
2 WenhaoWu Nov 28, 2019 via Android 不要把 Activity 和 Fragment 直接传进 Presenter,把 View 抽象成 Interface 然后 Activity implement 它。 |
3 WenhaoWu Nov 28, 2019 via Android 可以看看我写的小 Demo github.com/WenhaoWu/PexelsPhoto |
4 ytempest Nov 29, 2019 via Android P 层发起一个延时请求,在请求未完成前,activity 被回收,导致 V 为空,我好像也遇到过 |
5 ChenFanlin Nov 29, 2019 "在内存不足的情况下,系统不会只针对单个 activity 进行回收,而是会对整个进程进行回收" 这句话如果当你的 app 在前台的时候这就不成立了呀, 可以试试 开启不保留活动+P 层发起一个延时请求 会不会重现 |
6 frantic Nov 29, 2019 异步调用的话,如果你当前的 Activity 被销毁了,但是异步里面还调用了此 View 就会出现这个问题,需要对生命周期管理 |
7 lifewinner OP @ChenFanlin 就是前台进程啊,为什么不成立呢 |
8 lifewinner OP @frantic view 为什么会被销毁,原因是什么 |
9 wobuhuicode Nov 29, 2019 感觉安卓的 MVP 就是个绕圈子的玩意。 |
10 ChenFanlin Nov 29, 2019 @lifewinner #7 https://www.ibm.com/developerworks/cn/opensource/os-cn-android-mmry-rcycl/index.html 回收的条件是: 1.必须是非 persistent 进程,即非系统进程; 2.必须是空进程,即进程中没有任何 activity 存在。 3.必须无 broadcast receiver。运行 broadcast receiver 一般都在等待一个事件的发生,用户并不希望此类程序被系统强制关闭; 4.进程中 service 的数量必须为 0 更常见的 P 层中 view == null 的原因 : P 不应该都有 attachView, detachView 这俩方法嘛? 为了不内存泄露, 一般 detachView 在 Activity 的 onDestroy 调用, 把 P 中的 view 置空 |
11 pyfan Nov 29, 2019 github 上传个文件 发链接,或者 Stack Overflow 发个链接,我们瞅瞅 |