小米NetworkInfo的isConnected()一直返回false

问题描述:

当app处于后台时,按电源键锁屏待机,等待几分钟后,再次解锁亮屏进入app后,进行网络请求时,一直返回无网络连接导致网络错误。(该网络错误是网络框架返回的,与后台服务器无关,观看服务器访问日志,也确认没有访问记录)

原因:

项目中使用了kalle网络框架啊,该框架中添加了网络状态变化广播监听,在手机息屏亮屏时会判断网络状态,假如判断网络状态为无网络连接,则网络请求被拦截,直接返回网络错误(避免无网络时等待网络超时返回),具体的网络连接状态此处不具体列出,此处问题的关键点在于NetworkInfoisConnected()的结果。

在正常情况下,该网络判断正常,但是当小米息屏几分钟后,亮屏打开app请求网络,即时网络连接正常,但isConnected()的结果一直返回false,导致网络请求一直不成功。(具体是无wifi连接,有数据连接的情况下发现该问题(wifi下也有同样问题),并且能重现),其它手机系统暂无发现,因此怀疑是小米系统导致。不知道其它app有无通过isConnected()来做该判断,他们的网络访问是正常的。

解决方法:

当手机系统为小米系统时,忽略isConnected()判断,不理会是否有连接,通过网络超时来返回网络错误。

或者通过访问固定链接(如:百度首页等)是否成功来判断网络状态。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值