第三篇:关于MVPArms与OKGO结合报错--mRootView为空

一、声明

        首先我说明一下,这个框架,无论是MVPArms(该作者的思想不错,特别值得我学习,但是思想这玩意儿好难学)还是OKGO,都是好框架,但是在使用过程中难免会有好多的坑出现,其实也是我们没有按照作者的文档或是方法、步骤进行。

二、原因

        我开发一款APP中,订单、车辆管理数据比较多,又不好做分页(数据要求要新好完整排序),所以就请求了完整的数据列表,服务器搜索时间较长,导致了mRootView为空了(大概是15秒的时间),这里并不是很理解,无论是不是在当前页(acitivity或fragment)都会出现这情况,如果不处理的话,就会造成程序停止运行。

三、解决

        1、增加判断  if(null != mRootView) { 代码省略 },这个方式不可取,但也是我前期的方案,这个方法不好的地方在于页面会一直转圈圈,因为mRootView为null了,取消加载框的代码执行不了,但总比停止运行强、

        2、重写IView接口类,增加动态代理模式,统一判断、统一处理,这个方法没有试过,应该是可行的。

        3、既然15秒的时间造成空指针,那么把OKGO的超时时间定为10秒。另外在presenter中的onDestroy()方法中加入

 OkGo.getInstance().cancelAll();
 或
 OkGo.getInstance().cancelTag(tag);

       就可以了(目前采用的方法)

四、疑问

       如果这篇文章有幸被MVPArms的作者 JessYan 看到,我想知道为什么mRootView为null的时间大概为15秒?是设计如此还是android的回收机制造成的?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值