《第一行代码》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
边走边唱oc
插眼
2018年08月18日 18点08分
8
level 13
弹指尘梦🍁✨
我这里好像是对的
2018年08月19日 00点08分
9
弗兰Gº
你的是第几版,我的是第二版!
2018年08月19日 03点08分
弹指尘梦🍁✨
@弗兰Gº
我也是第二版的,但是没出现你的问题
2018年08月19日 04点08分
弗兰Gº
@弹指尘梦🍁✨
(⊙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
弗兰Gº
OK👌,谢谢啦
2018年08月19日 18点08分
弹指尘梦🍁✨
@弗兰Gº
2018年08月19日 23点08分
level 6
弗兰Gº
楼主
版本的问题吧!我是第5次印刷的版本,少了那行代码!好了,我觉得可以结贴了。
2018年08月19日 18点08分
16
1