首页 > 其他分享 >Android开发多线程断点续传下载器

Android开发多线程断点续传下载器

时间:2023-04-30 17:35:56浏览次数:49  
标签:断点续传 记录 主线 线程 Android 多线程 下载 View


111


Android开发多线程断点续传下载器
分类: Android  2011 - 10 - 01 23 : 14 931人阅读 评论( 8 ) 收藏 举报

使用多线程断点续传下载器在下载的时候多个线程并发可以占用服务器端更多资源,从而加快下载速度,在下载过程中记录每个线程已拷贝数据的数量,如果下载中断,比如无信号断线、电量不足等情况下,这就需要使用到断点续传功能,下次启动时从记录位置继续下载,可避免重复部分的下载。这里采用数据库来记录下载的进度。

效果图

       

 

断点续传

1 .断点续传需要在下载过程中记录每条线程的下载进度

2 .每次下载开始之前先读取数据库,查询是否有未完成的记录,有就继续下载,没有则创建新记录插入数据库

3 .在每次向文件中写入数据之后,在数据库中更新下载进度

4 .下载完成之后删除数据库中下载记录

Handler传输数据

这个主要用来记录百分比,每下载一部分数据就通知主线程来记录时间

1 .主线程中创建的View只能在主线程中修改,其他线程只能通过和主线程通信,在主线程中改变View数据

2 .我们使用Handler可以处理这种需求

   主线程中创建Handler,重写handleMessage()方法

   新线程中使用Handler发送消息,主线程即可收到消息,并且执行handleMessage()方法

动态生成新View

可实现多任务下载

1 .创建XML文件,将要生成的View配置好

2 .获取系统服务LayoutInflater,用来生成新的View

   LayoutInflater inflater  = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);

3 .使用inflate( int resource, ViewGroup root)方法生成新的View

4 .调用当前页面中某个容器的addView,将新创建的View添加进来

示例

进度条样式 download.xml
[html] view plaincopy

    

标签:断点续传,记录,主线,线程,Android,多线程,下载,View
From: https://blog.51cto.com/u_548275/6237909

相关文章

  • android开发中使用GZIP压缩传输
    1.class=javaname="code">HTTP压缩可以大大提高浏览网站的速度,它的原理是,在客户端请求网页后,从服务器端将网页文件压缩,再下载到客户端,由客户端的浏览器负责解压缩并浏览。相对于普通的浏览过程HTML,CSS,Javascript,Text,它可以节省40%左右的流量。更为重要的是,它可以对动......
  • android有序广播和无序广播的区别
    BroadcastReceiver所对应的广播分两类:普通广播和有序广播。普通广播通过Context.sendBroadcast()方法来发送。它是完全异步的。所有的receivers接收器的执行顺序不确定。  因此,所有的receivers接收器接收broadcast的顺序不确定。这种方式效率更......
  • Android 检测是否有ROOT权限
    android(linux)很多命令需要root权限才能执行,比如说查看系统目录文件等,如果我们的程序需要用到查看此类文件或执行系统命令,就必须先获取Root权限。1.importjava.io.DataInputStream;2.importjava.io.DataOutputStream;3.importjava.io.InputStream;4.impor......
  • Android手机信息
    获取手机屏幕高度  1.privatevoidgetWeithAndHeight(){2.//这种方式在service中无法使用,3.DisplayMetricsdm=newDisplayMetrics();4.getWindowManager().getDefaultDisplay().getMetrics(dm);5.Stringw......
  • android平台下UITesting环境配置
    1.androidsdk至少需要android4.1,所以先通过SDKmanager更新sdk,我这里使用android4.22.eclipse至少需要3.6.2,否则不支持3.配置环境变量path,加入java,androidsdktool的路径4.通过AVDManager启动android4.2的虚拟机5.在虚拟机上安装需要测试的apk软件(下面的测试用例只测......
  • 获得android手机的CPU核心数
    //CPU个数privateintgetNumCores(){//PrivateClasstodisplayonlyCPUdevicesinthedirectorylistingclassCpuFilterimplementsFileFilter{@Overridepublicbooleanaccept(Filepathname){//Checkiffilenameis&......
  • Android中使用log4j
    如果要直接在android工程中使用log4j,是有点问题的,会报如下的错: 11-2309:44:56.947:D/dalvikvm(1585):GC_FOR_MALLOCfreed3278objects/311568bytesin31ms rejectingopcode0x21at0x000a rejectedLorg/apache/log4j/config/PropertySetter;.getPropertyDescript......
  • Android ListView 去除…
    去除ListView滑到顶部和底部时边缘的黑色阴影:android:fadingEdge="none"----------------------------------------------------去除拖动时默认的黑色背景:android:cacheColorHint="#00000000" 或listView.setCacheColorHint(Color.TRANSPARENT);---------------------......
  • android上传图片至服务器
    本实例实现了android上传手机图片至服务器,服务器进行保存服务器servlet代码publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{Stringtemp=request.getSession().getServle......
  • Android 开发 UI 规则
    Android的官方开发者博客发了一份幻灯片,介绍了一些AndroidUI设计的小贴士,在这里以看图说话的形式发出来。Don’t: 1、不要照搬你在其它平台的UI设计,应该让用户感觉是在真正使用一个Android软件,在你的商标显示和平台整体观感之间做好平衡2、不要过度使用模态对话框3、......