第二个电商项目Bug点统计和解决方法

2023-11-17

第二个完成的项目。在完成项目后,我总结了那些自己感觉重要的BUG.
1. BUG系列一:设置延时,导致Activity销毁后,延时中的PullToRefreshListView 为null
· Bug现象
Bug 85536:在网络不好情况下,快速进入退出商品详情页面,崩溃

· Bug原因
这个Bug很难实现,经过多次的操作,终于出现,是自己代码的问题。我是在加载完数据后,完成刷新,并延时了0.5秒;

PullToRefreshListView.onRefreshComplete();`

但是快速进入退出,会导致PullToRefreshListView空指针崩溃
· Bug解决方法
去掉延时,并判断是否为空

  1. BUG系列二:图片未映射到公网地址,仍是私网地址开头,导致在公网中无法显示
    · Bug现象
    Bug 88095 - 商城首页图片加载慢,无法显示
    · Bug原因
    这个Bug是因为服务器传过来的图片url还是私网开头的,在公网下无法访问。
    · Bug解决方法
    图片地址加映射,改为公网开头

  2. BUG系列三:按钮多次点击/来回切换,导致多次访问接口
    · Bug现象
    Bug 88831 - 搜索条件相同,点击多次搜索;点击搜索后,跳转到搜索结果页面,再次点击EditText返回,反复,快速点击;商品列表中出现重复的商品
    · Bug原因
    按钮多次点击,是访问了多次接口;第二种是因为,反复快速搜索,第一次返回的数据和第二次返回的数据都显示在第二次的界面
    · Bug解决方法
    搜索按钮,做了防止重复多次点击;进入搜索结果页面,先显示转圈动画,使其有个缓冲。

  3. 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);
        outState.putInt(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的解决办法,
         * 将super.onSaveInstanceState(outState);注释掉,让其不再保存Fragment的状态,达到其随着MainActivity一起被回收的效果!
         */
//        super.onSaveInstanceState(outState);
        outState.putInt(SAVED_FRAGMENT_INDEX, nowMenuIndex);// 保存住当前fragment的下标
    }

这样这个麻烦的Bug就解决了,感谢我的同事帮忙解决。

  1. BUG系列五:轮播广告栏有图片改变,刷新后,图片错乱
    · Bug现象
    Bug 89031 轮播广告的图片在第二张时,往前移动到第一张显示第二张的图片
    · Bug原因
    轮询广告刷新后,图片的回收不正确,有错乱
    · Bug解决方法
    用了蠢的方法,刷新,重新去新建轮询广告,删除之前那个。

  2. BUG系列六:商品详情中,评论上滑加载,最后一页的正在加载一直下不去,不消失。
    · Bug现象
    Bug 89032 商品详情中,评论上滑加载,最后一页的正在加载一直下不去,不消失
    · Bug原因:不知道
    · Bug解决方法
    修改代码:
    @Override
    public void onPullUpToRefresh(PullToRefreshBase refreshView) {// 下拉加载更多
    refreshView.getLoadingLayoutProxy().setRefreshingLabel("正在加载");
    pageNumber++;
    getValuation();
    if (pageNumber * pageSize > mAdapter.getCount()) {
    loadFinish();
    // pullToRefreshListView.onRefreshComplete();
    // toast("已获得所有消息");
    return;
    }

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

第二个电商项目Bug点统计和解决方法 的相关文章

  • 使用DBFlow,如何加密已经存在的数据库?

    我正在使用 DBFlow 来处理项目中的数据库 并且我想对现有数据库进行加密 我知道我可能必须删除现有的未加密数据库并创建另一个加密数据库 我也知道我可以将 SQLCipher 与 DBFlow 一起使用 如上所述文档 https gith
  • Android TelecomManager 中的 addIncomingCall 没有执行任何操作

    我正在尝试使用本机 Android 来电 UI 我有一个连接服务 并且我已经成功注册了一个电话帐户 但在我调用方法 addNewIncomingCall 后什么也没有发生 对我所缺少的有什么想法吗 显现
  • 如何访问 Android 心率传感器原始数据? (反射光,不是心跳)

    心率传感器上的 android sdk 仅返回计算出的 bpm 我对此不感兴趣 我需要访问 Android 心率传感器原始数据 例如就反射值的强度而言将会很大 因为心率传感器基本上使用 LED 并测量随时间变化的反射率 如果可能 访问由任何
  • Android中将JSON数据存储到本地数据库

    好的 我创建了一个应用程序 它使用 JSON 从我的服务器检索数据 现在我想将检索到的数据存储在手机的本地存储 数据库中 我该怎么做 我是android编程新手 这是我从服务器收到的 JSON messages id 44 issender
  • 使用同一个侦听器的多个活动

    我有 4 个活动 它们都包含一个 xml 页脚 其中包含 4 个按钮 每个活动一个 我现在想为这些按钮设置 onclicklistener 它是页脚中的自制菜单 问题是 如何使用侦听器以便重用代码 我有两个想法 创建一个实现 onclick
  • 音频流的最佳实践

    我正在编写一个应用程序来播放远程服务器的音频 我尝试了多种方法来实现流音频 但它们对我来说都不够好 这就是我尝试过的 幼稚地使用 MediaPlayer 就像是 MediaPlayer player new MediaPlayer play
  • 如何在 Android 应用程序中隐藏 Flutterwave API 密钥

    我正在构建一个 Android 应用程序 目前正在将 Flutterwave 集成到我的应用程序中以进行支付 建议我永远不要将 Flutterwave API 密钥放在我的应用程序上 那么我该如何隐藏这些键呢 我正在使用 Retrofit
  • 当我单击“完成”键时,Android OnEditorActionListener() actionId 给出 0

    我创建了一个键盘 当用户输入数字时 它会输入特定的 EditText 但是当用户单击Done关键 它没有去setOnEditorActionListener但它关闭了键盘 这是我的代码 final EditText txtQty new E
  • 4 天后,应用仍未在 Google Play 搜索中编入索引

    我已经在 4 天前在 google play 上发布了我的第一个应用程序 语音到短信 但我仍然无法通过其名称或开发人员名称在搜索中找到我的应用程序 我只能通过包名称或真实应用程序名称 但不带空格 找到我的应用程序 VoiceToSMS 链接
  • Play 商店中的应用描述更新

    我想更新应用程序的描述以及 Play 商店上的屏幕截图 但应用程序保持相同 即相同的版本号 我不想发布新应用程序 因为应用程序中没有任何更改 这可能吗 谷歌也会要求更新应用程序吗 您可以更新描述 也可以更改屏幕截图 您的应用程序将保持不变
  • 如何清除Android剪贴板?

    我发现的方法都不起作用 这是我尝试过的 1 使用clearPrimaryClip 的方法ClipboardManager class ClipboardManager clipboard ClipboardManager getSystem
  • Android:WebView/BaseInputConnection 中的退格键

    我在 Android 4 2 中遇到软键盘退格问题 我在 WebView CodeMirror 中有一个自定义编辑器 它使用一个空的
  • Jetpack Compose:制作全屏(绝对定位)组件

    我怎样才能在全屏渲染树的深处制作一个可组合的 类似于Dialog可组合作品 例如 当用户单击图像时 它会显示该图像的全屏预览 而无需更改当前路线 我可以用 CSS 来做到这一点position absolute or position fi
  • AndEngine MenuScene - 无法单击按钮

    我有一个关于 android 和 andengine 的小问题 这是我的主菜单的源代码 AbstractScene is extending Scene public class MainMenuScene extends Abstract
  • Android 的 Intent 和 Parcelable 对象

    为什么我需要打包我的对象 即使我只需将其发送到同一任务的另一个线程 实际上 我需要打开一个甚至可以在同一线程 主线程 上运行的活动 换句话说 为什么 Google 不提供一个 startActivity 版本 它采用通用对象广告参数而不是捆
  • 以 HTML 格式发送电子邮件

    我想发送 HTML 格式的电子邮件 如下图所示 我怎样才能做到这一点 请帮我 提前致谢 String body new String table tr td br header td tr br br Get b Best Score b
  • TextView.setMaxLines 不起作用?

    在我的应用程序中 我有一个屏幕 其中显示一些文本 然后显示一张照片 文本的长度是可变的 有时根本没有 有时很多 所以我想对其进行设置 以便文本永远不会占用超过几行 但可以滚动 为下面的图像留下足够的空间 我这部分的视图组件是以编程方式创建的
  • Android:透明活动问题

    最近 在我们的一款生产应用程序上 透明活动已停止工作 我的意思是它变成了黑色背景而不是透明背景 当我将活动的背景颜色设置为纯色 即红色 绿色等 时 它的应用不会出现问题 该问题可能是由于迁移到 AndroidX 引起的 但我没有这方面的证据
  • 在数组列表中过滤 Filterable 不取消之前的过滤

    我看过过滤器方法文档 其中显示调用过滤器会取消所有先前未执行的过滤请求 并发布一个稍后将执行的新过滤请求 但我收到的实际回调有些不同 在我的实现中 它不会取消先前的过滤器请求并调用publishResults 最近一次搜索条件后的上一次搜索
  • 我想测量 ListView 的高度 (getHight() = 0)

    我无法自己决定任务将是问 我想测量 ListView 的高度 无法捕捉渲染 ListView 的时刻 rssListView getHight 0 public class RSSactivity extends Activity publ

随机推荐

  • 数字钟实训经历

    第一次写博客 多多关照 先说一点自己的感悟吧 我是电气工程及其自动化专业的大三学生 大一时加入了学校的电子技术协会 转眼一晃两年就这样过去了 这不暑假了还在学校准备今年的全国电子设计竞赛 在这自学单片机的两年时间里 遇到了许多疑难困惑 通过
  • linux下MMC/SD/SDIO驱动系列之四 ---- SDIO的识别与操作

    从上篇文章的最后 我们知道host在扫描卡的过程中 其识别的顺序为SDIO SD MMC 并且从它的注释可以看出 这个顺序是很重要的 那这篇文章 我们就看看SDIO的识别过程 它对应的函数就是mmc attach sdio host 函数位
  • C++笔记一(C语言基础)

    1 变量命名规则 1 1 标识符可由三类字符 字母 下划线 数字组成 标识符只能由字母或下划线开头 标识符不能具有二义性 标识符有长度要求 在起定的名字中 超出长度规定的部分将被截掉 2 部分基础数据类型 2 1 常用数据类型长度 bool
  • EXE文件打不开的解决方法

    EXE文件打不开 打开 我的电脑 或随便一个文件夹 点击菜单 工具 选择 文件夹选项 选择 文件类型 中的 新建 新建扩展名 EXE 单击 高级 关联的文件类型 中选择 应用程序 在命令提示符 cmd 在 开始 菜单 所有程序 的 附件 中
  • C和C++打印指针值和地址

    1 C 中指针变量的地址和指针变量的值是两个不同的概念 指针变量的地址 这是指针变量这个变量在内存中的存储地址 如图所示0x1211 指针的值 里面存放的是一个地址 此地址即为指向的内存单元的地址 如图所示0x1101 2 假如要输出指针变
  • IntelliJ IDEA安装教程,三分钟手把手教会,非常简单!

    使用IntelliJ IDEA写java程序需要配置jdk 链接 JDK安装教程 一 IntelliJ IDEA下载 1 进入官网 官网地址 https www jetbrains com 2 点击 Developer Tools 开发者工
  • jQuery遍历之next()、nextAll()方法使用实例

    jquery遍历 next 和nextAll 方法 实例如下 复制代码 代码如下
  • element踩坑之el-select中的placeholder属性不显示

    直接上图 咱想要这种效果 但现实却给了这种效果 明明ui代码一模一样
  • 编译freeRTOS “error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token”错误解决

    今日编译ESP8266 RTOS SDK的时候有个头文件声明了extern 结构体 结果一旦加入这个头文件编译就各种报错 提示error expected asm or attribute before token 一通搜索之后并未解决我的
  • IDEA的好用小工具Test RESTful web Service

    Test RESTful web Service 一 2021版IDEA界面 二 2019版 我安了个插件叫Old REST Client来还原这个样子 三 代码demo示例 补充 好处 可以减少postman的使用 简单的可以用这个 脚本
  • 【C语言】详解getchar函数该如何使用

    目录 getchar函数 getchar函数的声明 getchar函数返回值问题 getchar函数的无法返回字符串的情况 输出通过getchar函数获得的一个字符 getchar函数的进一步使用 最后这里给大家推荐一个库函数的网站 Ref
  • 浪潮nf5180m5服务器安装系统,NF5180M5-IPMI设置

    登录 默认用户名需注意 用户名 admin 密码 admin 主页面 Web 界面分为四个部分 如下图所示 界面左上角 表示 Web 界面的名称 界面右上角各按钮含义 点击系统摘要按钮 返回系统摘要页面 2 点击刷新按钮 进行页面刷新 3
  • 【codeforces】 ZeptoLab Code Rush 2015 A,B,C,D,E题解

    D E统统FST 差一点就飞升了 A King of Thieves 给你一张地图 让你从某个 开始跳等步长的四次 如果均在 则输出yes 否则输出no 枚举起始点和步长直接做就可以了
  • python兼职:10个python接私活的平台!兼职也能月薪过万

    接私活一定要注意的个点 1 没有第三方担保的个人单子尽量少接 2 无需求文档 没具体需求的不接 3没有预付不做 尽量用442的分步骤方式 然后就是正题的网站推荐了 1 码市 https codemart com 2 开源众包 https z
  • python使用pygraphdb连接graphdb图数据库

    文章目录 前言 一 GraphDB是什么 二 使用pygraphdb连接graphdb 1 安装pygraphdb 2 功能介绍 数据管理 数据库管理 3 快速上手 4 使用with连接 5 数据管理 6 数据库管理 前言 本文主要介绍如何
  • 计算机组成原理定点源码一位乘,计算机组成原理课程设计-定点原码一位乘法器的设计.doc...

    计算机组成原理课程设计 定点原码一位乘法器的设计 课 程 设 计 报 告 课程设计名称 计算机组成原理课程设计 课程设计题目 定点原码一位乘法器的设计 院 系 计算机学院 专 业 班 级 4401102 学 号 208 姓 名 指导教师 完
  • mysql创建带密码的用户使用密码无法登录,但是不输入密码可以登录

    在cmd窗口 直接使用 mysql usa 可以登录 但是创建sa时候设置密码为123456 原因可能有两个 设置密码后没有强制刷新权限或者重启mysql服务 Mysql数据库的user表中有名字为空的用户名或root的密码为空 解决方法
  • np.where()函数的详细使用介绍

    看了很多博客 见到的没有一个给说清楚了 这里做个记录 这是python提供的函数说明 Help on function where in module numpy where where condition x y Return eleme
  • linux man php,linux man命令的使用

    linux man命令的使用 main 是最常见的帮助命令 也是 Linux 最主要的帮助命令 其基本信息如下 命令名称 man 英文原意 format and display the on line manual pages 所在路径 u
  • 第二个电商项目Bug点统计和解决方法

    第二个完成的项目 在完成项目后 我总结了那些自己感觉重要的BUG 1 BUG系列一 设置延时 导致Activity销毁后 延时中的PullToRefreshListView 为null Bug现象 Bug 85536 在网络不好情况下 快速