Morning更新日志及Bug记录
2016-02-22 本文已影响71人
黑丫山上小旋风
更新日志
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();
- 待解决