主页数据加载数据有时加载不出来

问题:项目还是比较典型的mainActivity上面五个Fragment,出现的bug是有时候一进来主页Fragment部分数据没显示出来。

追踪:网络请求确实发出去了,打印也响应数据返回了。

 NetClient.api.XXXXX(map)
            .compose(NetworkScheduler.compose())
            .bindToLifecycle(this)
            .subscribe(object : NetResponse<RestResult<XXX.CLASS>>(activity) {
                override fun success(data: RestResult<RechargeModel>) {
               		//这里没有回调,错误的回调也没有
                }

数据进了Rxjava之后就没了,成功跟错误都没有回调。

这简直要炸,如果是一个请求那完全没有问题,大不了进入Rxjava源码进行断点,事件流传到哪里一目了然,但是这个项目初始化一进来有无数个请求,我是刚加入才几天的,连流程都不熟悉,这就无解了。

仔细看跟我之前学习使用的Rxjava的区别:.bindToLifecycle(this),rxlifecycle库,看名字就知道它的作用了,类似disposable的作用。

猜测是它断掉了事件流的传递,但是这个开源库源码没研究过,都不知道有没有提供api来判断。

从它的功能出发来分析,当界面失去焦点它会断掉流的传递。

在onResume里面打log,发现居然执行了两次,怪不得被中断了。

虽然界面有很多dialog,但是要知道我们正常弹出的dialog是不会导致当前界面失去焦点的,除非是系统的dialog,但是这流程没看到dialog啊。

百度一下:上一个界面权限请求会导致两次执行onResume,因为会有一个看不见的系统dialog瞬间出现又消失。

往引导界面查找,果然发现,这个界面的权限代码有问题,一进来就请求权限,在回调里处理下一步逻辑,不管之前是否请求过权限。

看来锅就是这个了,修改一下,检查,没问题了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值