关于MVP的一点思考(View被释放后,又调了View的方法,造成空指针)
2017-11-17 15:55
441 查看
当我们在使用 MVP 的时候(应该其他场景也有这种情况),我们在请求网络的时候,网络还没返回,这个时候View 被销毁了,那么 View 为 Null,这个时候去调用 View 的方法,就会造成空指针异常,一般来说,我们可以在销毁的时候进行cancel请求,但是也有可能没有被cancel,在这种情况下,我们可以用盘空的方法来进行处理,比如
但是这样写的话就会造成所有的地方都需要写这个判空语句,很繁琐,很麻烦,今天老大说了一个比较好的处理方式,那就是 动态代理(关于动态代理怎么写 就百度吧):
这样写的话,每次在调view方法的时候,就先判空,这样就不会每个地方都要去写 那些代码了。
if (view != null) { //todo }
但是这样写的话就会造成所有的地方都需要写这个判空语句,很繁琐,很麻烦,今天老大说了一个比较好的处理方式,那就是 动态代理(关于动态代理怎么写 就百度吧):
@Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { if (mObject != null) { return method.invoke(mObject, args); } Log.e("TAGTAG", "object is null "); return null; }
这样写的话,每次在调view方法的时候,就先判空,这样就不会每个地方都要去写 那些代码了。
相关文章推荐
- 关于ruby的new方法的一点思考
- 关于静态方法为什么不能被重写的一点思考以及overload的一些坑。
- 关于DI容器UnityContainer的Dispose方法释放资源的一点理解
- 【漏洞分析】struts2漏洞中关于动态方法调用的一点思考
- 关于抽象类和接口中含有相同方法的实现的一点思考
- 关于静态方法为什么不能被重写的一点思考以及overload的一些坑
- 关于指针的一点思考
- struts2漏洞中关于动态方法调用的一点思考
- android下ViewGroup关于Layout的一点思考
- 关于函数名与函数指针的一点思考
- 关于qsort第四个参数,函数指针作参数的一点思考
- 关于静态方法为什么不能被重写的一点思考以及overload的一些坑。
- 关于泛型类和扩展方法的一点思考
- 关于response.sendRedirect()方法的一点思考
- 关于使用线程池造成tomcat进程无法正常退出的一点思考
- 关于模板方法和策略模式的一点思考
- 关于MVC,MVP,MVVM的一点总结和思考
- 关于指针的思考
- 关于项目关键人物的一点思考
- 关于避免审查元素时,修改数据和提交数据,造成恶意审查修改的方法总结