请教下 MVP 的 View 空指针问题

2019-11-26 11:27:02 +08:00
 kerb15

view 调用 presenter.do()方法

do 方法的实现如下:

do(){ view.showXXX(); }

那么有没有可能在 view 在执行 presenter.do()方法的瞬间,View 挂了,导致 do 方法中,view 报了空指针错误?

现在项目中跑 monkey 测试遇到了类似问题,有没有大佬帮忙解答一二?

7333 次点击
所在节点    Android
23 条回复
kerb15
2019-11-29 18:42:12 +08:00
@starerlloll 初始化 presenter 时传过去,presenter 直接强引用。
ukyoo
2019-12-02 11:55:59 +08:00
在 Activity(View)销毁后, Presenter 的调用了 View 的方法,当然会报空指针了, MVP MVVM 都会遇到.
MVP 要么加个方法,要么用 autodispose 之类的框架. MVVM 在 ViewModel#onCleared()里取消观察.
fansangg
2019-12-03 01:56:21 +08:00
@kerb15 在 activity ondestory 的 dispose 掉,我在写 Presenter 的时候会在 base 里加上绑定 view 和解绑 view 的方法

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/623183

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX