第二个完成的项目。在完成项目后,我总结了那些自己感觉重要的BUG.
1. BUG系列一:设置延时,导致Activity销毁后,延时中的PullToRefreshListView 为null
· Bug现象
Bug 85536:在网络不好情况下,快速进入退出商品详情页面,崩溃
· Bug原因
这个Bug很难实现,经过多次的操作,终于出现,是自己代码的问题。我是在加载完数据后,完成刷新,并延时了0.5秒;
PullToRefreshListView.onRefreshComplete();`
但是快速进入退出,会导致PullToRefreshListView空指针崩溃
· Bug解决方法
去掉延时,并判断是否为空
BUG系列二:图片未映射到公网地址,仍是私网地址开头,导致在公网中无法显示
· Bug现象
Bug 88095 - 商城首页图片加载慢,无法显示
· Bug原因
这个Bug是因为服务器传过来的图片url还是私网开头的,在公网下无法访问。
· Bug解决方法
图片地址加映射,改为公网开头BUG系列三:按钮多次点击/来回切换,导致多次访问接口
· Bug现象
Bug 88831 - 搜索条件相同,点击多次搜索;点击搜索后,跳转到搜索结果页面,再次点击EditText返回,反复,快速点击;商品列表中出现重复的商品
· Bug原因
按钮多次点击,是访问了多次接口;第二种是因为,反复快速搜索,第一次返回的数据和第二次返回的数据都显示在第二次的界面
· Bug解决方法
搜索按钮,做了防止重复多次点击;进入搜索结果页面,先显示转圈动画,使其有个缓冲。BUG系列四:将app放至后台,长期后,Activity被回收,重新打开App崩溃
· Bug现象
Bug 89087 返回手机主屏幕,再进app闪退,再进APP就正常了
· Bug原因
首页activity 被回收导致打开是闪退
其中MainActivtiy中有一段代码:
/**
* 当不确定该Activity是否会被销毁,通常发生于onpause之后onstop之前,例如:回到桌面,屏幕熄灭等动作会调用
*
* @param outState
*/
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
(SAVED_FRAGMENT_INDEX, nowMenuIndex);// 保存住当前fragment的下标
}
Activity被回收,导致MainActivity中的fragment中的getActivity()为null
· Bug解决方法
代码修改如下:
/**
* 当不确定该Activity是否会被销毁,通常发生于onpause之后onstop之前,例如:回到桌面,屏幕熄灭等动作会调用
*
* @param outState
*/
protected void onSaveInstanceState(Bundle outState) {
/**
* Description:Activity被回收导致fragment的getActivity为null的解决办法,
* 将(outState);注释掉,让其不再保存Fragment的状态,达到其随着MainActivity一起被回收的效果!
*/
// (outState);
(SAVED_FRAGMENT_INDEX, nowMenuIndex);// 保存住当前fragment的下标
}
这样这个麻烦的Bug就解决了,感谢我的同事帮忙解决。
BUG系列五:轮播广告栏有图片改变,刷新后,图片错乱
· Bug现象
Bug 89031 轮播广告的图片在第二张时,往前移动到第一张显示第二张的图片
· Bug原因
轮询广告刷新后,图片的回收不正确,有错乱
· Bug解决方法
用了蠢的方法,刷新,重新去新建轮询广告,删除之前那个。BUG系列六:商品详情中,评论上滑加载,最后一页的正在加载一直下不去,不消失。
· Bug现象
Bug 89032 商品详情中,评论上滑加载,最后一页的正在加载一直下不去,不消失
· Bug原因:不知道
· Bug解决方法
修改代码:@Override
public void onPullUpToRefresh(PullToRefreshBase refreshView) {// 下拉加载更多
().setRefreshingLabel("正在加载");
pageNumber++;
getValuation();
if (pageNumber * pageSize > ()) {
loadFinish();
// ();
// toast("已获得所有消息");
return;
}