重更日志

10.4和10.5(上午)

  • 使用实体类对文件信息和线程信息进行包装,准备实现以后的多线程和多文件下载
  • 使用SQLite进行线程信息的储存,实现断点续传
  • 使用服务代替Activity进行下载,防止用户或系统致使下载异常中断
  • 使用Intent练习Activity和Service,使用BoardcastReceiver回传信息给主活动更新UI
  • 调整更新UI频率,优化界面显示效果

坑&收获

  • 总是忘记申请权限,下次要实现弹出授权窗口的功能
  • 一开始读一次输入流就更新一次UI,结果导致下载极度缓慢,后面改为500ms更新一次就好了
  • 出现了许多莫名错误,学会了使用log和Debuger,这个真心很有用

10.5(下午)

  • 初步完成List View
  • 支持多任务下载
  • 使用多线程下载
  • 使用线程池管理线程

  • 多线程同时访问数据库导致数据库锁定(通过“单例模式”解决)
  • 用户删除了下载文件,数据库没有及时判断
  • 实现多线程多文件下载后UI不稳定,进度条到50%以后就开始出现显示异常,但是仍然可以成功下载文件(发现由于int不够长导致,已解决)
  • 使用线程池后部分机型(比如我的手机)文件下载出现问题

计划

  • 认真学习Java泛型、集合、多线程
  • 认真学习Android的listview和recycleview

10.6

  • 完成显示通知,并可直接在通知中操作开始和暂停,点击通知可以进入活动(6.0以上存在获取不了权限的问题)
  • 用户可以添加下载任务进行多任务下载
  • 完善了图标

  • (今天算是坑巨多了,QAQ
  • 申请不到通知权限
  • 使用线程池管理后,下载结束无法被正常检测到,导致不显示已完成状态以及SQLite不能删除线程数据
  • 无数小坑……

收获

  • 学会简单地使用adb辅助Debug
  • 使用PS简单地处理图标

##10.7

  • 实现了下载完成后点击按钮打开文件
  • 添加下载进度、文件大小显示
  • 简单地监听剪贴板
  • 简单地检查URL是否合理、名字是否为空

  • 下载结束无法被检测仍然没能解决(跳不出循环,很奇怪)
  • 对Java语法和API不很清楚总是出bug

收获

  • 学习剪贴板时了解到了一些好用的系统服务
  • 接触到了不同版本API产生的兼容性问题(也包括外观)

方向

  • 总的来说还是要加强基础的Java学习,才能搞好Android