Morning更新日志及Bug记录

更新日志

2016.2.1

versionCode 5
更新版本号1.2.2

  • 修复周日闹钟不响应问题
  • 修复修改闹钟信息后原闹钟依然会触发问题

2016.1.30

versionCode 4
更新版本号1.2.1

  • 新增自定义铃声,可以从本地选取喜欢的音乐作为铃声
  • 删除添加闹钟界面底边栏设计,统一放到顶部菜单中
  • 修复修改闹钟界面无法获取当前闹钟信息bug

Bug日志

1.周日不触发闹钟bug(2016.2.1)

  • 问题描述:
    重复闹钟在周日不会被触发
  • 原因分析:
    获取系统时间的当前dayofweek时,如果是周日返回0,但是AlarmInfo中保存的周日信息为7,不匹配造成
  • 解决方案
    • 获取当前dayofweek时如果是0,赋值为7
  • 实际解决
    同方案
  • 解Bug成功

2.修改闹钟信息bug(2016.2.1)

  • 问题描述:
    修改闹钟信息后,重复天数修改失败,旧的闹钟依然会被触发,新的闹钟也会被触发
  • 原因分析:
    修改闹钟完成后,采用的刷新方法是重新加载FragmentAlarm页面,并再次开启定时任务,并没有取消之前的定时任务,因为闹钟触发时间被修改,AlarmManger在处理的时候认为是一个不同的定时任务,因此没有覆盖旧的闹钟
  • 解决方案
    • a.在修改闹钟信息后,取消原来的定时任务,重新启动新的定时任务。
    • b.优化AlarmReceiver代码结构,只通过Intent将闹钟Id传递,由Receiver从数据库中查找准确的闹钟信息,减少Intent携带数据以免造成数据冗杂
  • 实际解决
    • a方案有效,b方案不可行,因为Receiver在一个新的进程中,依靠原进程读取数据库会造成线程不安全。
    • 在获取PendingIntent时,最后一位参数如果传入0,会保留第一次的Intent对象,在Receiver响应后触发RunAlarmAgain()时会导致无法找到闹钟信息,报空指针错误。
PendingIntent pi= PendingIntent.getBroadcast(context,id,
                        intent,PendingIntent.FLAG_UPDATE_CURRENT);
  • 解Bug成功

3.WIFI无Internet访问时崩溃bug(2016.2.22)

  • 问题描述:
    当连接有Wifi但并无网络访问权限时在网络请求超时会导致程序崩溃
  • 原因分析:
    NetInfo.isNetWorkAvailable()只能判断当前是否有数据网络,及是否连接WIFI,无法判断网络访问情况,导致初始化数据条件判断失误,请求网络数据,返回result为空,在数据解析中未进行空安全处理,导致空指针异常。
  • 解决方案
    • a.重新修改判断网络方法,判断是否有网络访问。查询相关API
    • b.在请求数据后判断result是否为空,为空不调用parseData();
  • 待解决

你可能感兴趣的:(Morning更新日志及Bug记录)