《第一行代码》coolweather项目实践的一处bug
android开发吧
全部回复
仅看楼主
level 6
弗兰Gº 楼主
就是在监测完sharedpreference有缓存数据后,再去手动更新城市,更新天气。如果你下拉刷新,会发现页面回到了原先的城市和天气数据。
2018年08月18日 16点08分 1
level 6
弗兰Gº 楼主
第一次发帖,感觉很多人都学习郭老师的书,觉得很重要。
2018年08月18日 16点08分 2
level 6
弗兰Gº 楼主
首先这段逻辑实在onCreate里也就是说活动建立后肯定要检测是否有缓存,此时mWeatherId数据没有问题,他是朝阳的天气ID
2018年08月18日 16点08分 3
level 6
弗兰Gº 楼主
如果切换县级市则会最终执行requestWeather方法
2018年08月18日 17点08分 4
level 6
弗兰Gº 楼主
requestWeather方法确实通过sharedPreferences.Editor确实将weather数据改变
2018年08月18日 17点08分 5
level 6
弗兰Gº 楼主
但是你下拉刷新,执行onRefresh方法,mWeatherId仍然是朝阳的天气ID,虽然mWeatherId为全局变量,但你下拉刷新操作仅仅只执行了onRefresh方法并没有去监测是否有缓存,因为那是onCreate里的,onCreate他是活动创建是被调用,而检测缓存也被调用。
2018年08月18日 17点08分 6
level 6
弗兰Gº 楼主
也就是说,下拉刷新操作虽然改变了缓存中的数据,但最终要的全局变量mWeatherId并没有改变还是原来的县级市天气ID。解决方法为在onRefresh方法中添加从刷新的缓存中更新全局变量mWeatherId的逻辑
2018年08月18日 17点08分 7
你可以去郭老师的github,上面有所有例子的源码
2018年08月19日 13点08分
level 5
插眼
2018年08月18日 18点08分 8
level 13
我这里好像是对的[小乖]
2018年08月19日 00点08分 9
你的是第几版,我的是第二版!
2018年08月19日 03点08分
@弗兰Gº 我也是第二版的,但是没出现你的问题
2018年08月19日 04点08分
@弹指尘梦🍁✨ (⊙o⊙)哦,是否方便把那几处代码拍下发到此贴上呢![小乖]其实我的是盗版的,是盗版原因,还是代码错误。[泪]
2018年08月19日 04点08分
level 9
[滑稽]锦旗和500正在路上
2018年08月19日 03点08分 10
level 6
弗兰Gº 楼主
其他吧友那里是正常的,可能郭老师在新版里发现并改正了吧!确实我在OPPO软件商店发现的coolweather项目没有这样的问题,但在360软件助手里的,就有这样的bug。
2018年08月19日 03点08分 12
level 9
[呵呵]
2018年08月19日 05点08分 13
level 13
你看下你是不是这个版本
2018年08月19日 13点08分 14
level 13
2018年08月19日 13点08分 15
OK👌,谢谢啦[泪][呵呵]
2018年08月19日 18点08分
2018年08月19日 23点08分
level 6
弗兰Gº 楼主
版本的问题吧!我是第5次印刷的版本,少了那行代码!好了,我觉得可以结贴了。[泪]
2018年08月19日 18点08分 16
1