Android开发——下载功能的逻辑和实现
来源:互联网 发布:淘宝 苹果证书 编辑:程序博客网 时间:2024/05/21 09:50
项目里需要用到下载,一开始没觉得有什么难的,后来真正写的时候才发现这里的逻辑还是有一点绕的,在小伙伴的提醒下我才真正把逻辑理清楚!写代码前的逻辑要清楚,这样写的时候才知道要点,如果不知道从何下手,那么最快最简便的方法就是直接模仿同类产品,那句话怎么说来着,好的艺术家抄袭,伟大的艺术家剽窃!(哈哈,其实这句话的本意是让你从优秀的产品里找到设计的艺术)
有了这个逻辑之后再去实现就好写多了,接下来就是具体的实现了,具体的代码我就不贴了,毕竟这是公司的商业项目,其中实现断点续传的部分参考自http://stackoverflow.com/questions/6237079/resume-http-file-download-in-java
//这句话就表示下载是具体从哪一个比特开始connection.setRequestProperty("Range", "bytes=" + downloaded + "-");
//当pause为true时直接结束下载,换句话说根本不存在真正的暂停,点了暂停之后就结束下载//并记录具体下载了多少bytes,当再次下载时读取已下载的bytes放在connection中,实现了断点续传while ((bufRead = is.read(bytes)) != -1 && !pause) { curlength += bufRead; fos.write(bytes, 0, bufRead); //避免更新太快造成的卡顿,这里每5%更新一次,原先我是新开一个线程专门来发数据给UI更新,结果各种问题,后来小伙伴refactor时改成这个if语句 //确实,简单有效的方法最好了! if (curlength * 100 / totalLength - percentProgress > 5) { percentProgress = curlength * 100 / totalLength; sendDownloadProgress(videoDownload); } }
最后写句话给自己:功能实现之后记得review并refactor自己的code,这不仅是在整理自己的思路也是在培养自己良好的编程习惯!向1W行代码前进!
0 0
- Android开发——下载功能的逻辑和实现
- 【Android开发经验】关于“多线程断点续传下载”功能的一个简单实现和讲解
- 【Android开发经验】关于“多线程断点续传下载”功能的一个简单实现和讲解
- Android开发记录七之文件下载的功能实现
- 游戏服务器引擎开发笔记之二——游戏服务器引擎和逻辑的功能的相互调用(一)
- 游戏服务器引擎开发笔记之三——游戏服务器引擎和逻辑的功能的相互调用(二)
- Android App“记住密码”功能的实现逻辑
- Android多渠道集成多个功能逻辑实现的方法
- Android实现下载功能
- Android一点 简单的监听器使用,实现开发时逻辑和view的分离
- Android TV开发--实现延时关机功能(二)逻辑实现
- iOS开发中文件的上传和下载功能的基本实现
- iOS开发中文件的上传和下载功能的基本实现
- android开发之集成zxing,二维码,以及扫描二维码的功能实现。带源代码下载
- Android学习笔记12——内存卡操作及文件下载功能的实现
- android学习——handler的学习及实现封装下载图片功能
- iOS流媒体开发之三:HLS直播(M3U8)回看和下载功能的实现
- iOS流媒体开发之三:HLS直播(M3U8)回看和下载功能的实现
- TCP 传输 滑动窗口
- 黑马程序员-C语言中有关宏的一些注意事项
- LeetCode之Merge k Sorted Lists
- 过河问题
- 【poj】1328 Radar Installation 快排+贪婪
- Android开发——下载功能的逻辑和实现
- hdu 5289 Assignment 二分+RMQ 2015 Multi-University Training Contest 1 02
- 单链表的建立/测长/打印
- SSO简介
- tcpip问题(较全)
- 2015年多校联合训练第四场(Problem Killer)hdu5328
- 根据数据库动态创建CheckBox
- 黑马程序员-C语言中static、extern、typedef、enum使用的注意事项
- VVDocumenter Xcode6.4安装步骤(非常实用)