日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android 模拟多线程下载

發布時間:2025/5/22 Android 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android 模拟多线程下载 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?以下是一個多線程下載的例子,見代碼:

1、首先是布局文件

1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 android:layout_width="match_parent" 4 android:layout_height="match_parent"> 5 6 7 <Button 8 android:layout_width="wrap_content" 9 android:layout_height="wrap_content" 10 android:text="下載" 11 android:id="@+id/btnDownLoad" /> 12 13 <TextView 14 android:layout_width="wrap_content" 15 android:layout_height="wrap_content" 16 android:text="New Text" 17 android:id="@+id/tv" 18 android:layout_gravity="center_vertical" /> 19 </LinearLayout>

  2、然后是對應的Activity文件

1 import android.app.Activity; 2 import android.os.Handler; 3 import android.os.Message; 4 import android.os.Bundle; 5 import android.view.View; 6 import android.widget.Button; 7 import android.widget.TextView; 8 9 import com.yt.httpstudy.util.Download; 10 11 12 public class DownLoadActivity extends Activity { 13 private Button btnDown; 14 private TextView textView; 15 private int count = 0; 16 private Handler handler = new Handler(){ 17 //接收信息并且處理 18 public void handleMessage(Message message){ 19 int result = message.what; 20 count += result; 21 if(count ==3){ 22 //下載完成后刷新頁面 23 textView.setText("下載完成!"+count); 24 } 25 } 26 }; 27 @Override 28 protected void onCreate(Bundle savedInstanceState) { 29 super.onCreate(savedInstanceState); 30 setContentView(R.layout.activity_down_load); 31 btnDown = (Button) findViewById(R.id.btnDownLoad); 32 textView = (TextView) findViewById(R.id.tv); 33 34 btnDown.setOnClickListener(new View.OnClickListener() { 35 @Override 36 public void onClick(View view) { 37 38 new Thread(){ 39 @Override 40 public void run() { 41 super.run(); 42 Download download = new Download(handler); 43 //下載資源的地址 44 download.downLoadFile("http://192.168.1.123:8080/test/asd.jpg"); 45 } 46 }.start(); 47 } 48 }); 49 } 50 }

? ? ?3、處理多線程下載

1 import android.os.Environment; 2 import android.os.Handler; 3 import android.os.Message; 4 5 import java.io.File; 6 import java.io.IOException; 7 import java.io.InputStream; 8 import java.io.RandomAccessFile; 9 import java.net.HttpURLConnection; 10 import java.net.MalformedURLException; 11 import java.net.URL; 12 import java.util.concurrent.Executor; 13 import java.util.concurrent.Executors; 14 15 /** 16 * Created by 17 */ 18 public class Download { 19 20 21 public Handler handler; 22 //創建線程池 23 private Executor threadPool = Executors.newFixedThreadPool(3); 24 25 //構造器 26 public Download(Handler handler){ 27 this.handler = handler; 28 } 29 30 //線程池對象 31 static class DownLoadRunnable implements Runnable{ 32 //指定成員變量 33 private String url; 34 private String fileName; 35 private long start,end; 36 private Handler handler; 37 38 public DownLoadRunnable(String url,String fileName,long start,long end,Handler handler){ 39 this.url = url; 40 this.fileName = fileName; 41 this.start = start; 42 this.end = end; 43 this.handler = handler; 44 45 } 46 @Override 47 public void run() { 48 49 HttpURLConnection conn = null; 50 try { 51 URL httpUrl = new URL(url); 52 conn = (HttpURLConnection) httpUrl.openConnection(); 53 conn.setRequestProperty("Range", "bytes=" + start + "-" + end); 54 conn.setRequestMethod("GET"); 55 conn.setReadTimeout(5000); 56 57 //往本地寫文件 58 RandomAccessFile access = new RandomAccessFile(new File(fileName),"rwd"); 59 access.seek(start); 60 //讀取數據流 61 InputStream in = conn.getInputStream(); 62 63 //創建緩沖區 64 byte[] b = new byte[1024*4]; 65 int len = 0; 66 while ((len = in.read(b)) !=-1){ 67 access.write(b,0,len); 68 } 69 if(access !=null){ 70 access.close(); 71 } 72 if(in !=null){ 73 in.close(); 74 } 75 76 //發送消息 77 Message message = new Message(); 78 message.what =1; 79 handler.sendMessage(message); 80 } catch (IOException e) { 81 e.printStackTrace(); 82 } 83 84 } 85 } 86 87 public void downLoadFile(String url){ 88 try { 89 URL httpUrl = new URL(url); 90 HttpURLConnection conn = (HttpURLConnection) httpUrl.openConnection(); 91 conn.setRequestMethod("GET"); 92 conn.setReadTimeout(5000); 93 94 //獲取下載內容長度 95 int count = conn.getContentLength(); 96 int bloack = count/3; 97 98 //獲取文件名 99 String fileName = getFileName(url); 100 101 //獲取外部設備名稱 102 File parent = Environment.getExternalStorageDirectory(); 103 File fileDownLoad = new File(parent,fileName); 104 105 for(int i=0;i<3;i++){ 106 long start = i*bloack; 107 long end = (i+1)*bloack-1; 108 //第三個線程需要包括完最后的數據,否則不完整 109 if(i==2){ 110 end = count; 111 } 112 113 DownLoadRunnable runnable = 114 new DownLoadRunnable(url, 115 fileDownLoad.getAbsolutePath(), 116 start,end,handler); 117 //線程池提交任務 118 threadPool.execute(runnable); 119 } 120 } catch (MalformedURLException e) { 121 e.printStackTrace(); 122 } catch (IOException e) { 123 e.printStackTrace(); 124 } 125 } 126 127 //根據URL取出文件名 128 public String getFileName(String url){ 129 return url.substring(url.lastIndexOf("/")+1); 130 } 131 }

?

轉載于:https://www.cnblogs.com/hais/p/4764580.html

總結

以上是生活随笔為你收集整理的Android 模拟多线程下载的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日韩国产成人 | 免费观看在线视频 | 国产xxx | 在线观看av资源 | 精品一区二区三区在线观看 | 男生插女生视频在线观看 | 亚洲AV无码成人国产精品色 | 国产免费无码一区二区视频 | 网址你懂的在线 | 豆花在线观看 | 嫩草av久久伊人妇女超级a | av大全免费 | www.天堂av.com | 久久精品一区二区在线观看 | 久久精品色妇熟妇丰满人妻 | 国产精品黄色av | 影音先锋男人站 | 99精品小视频| 双女主黄文 | 最新欧美大片 | a级国产毛片 | 亚洲av无码一区二区三区人妖 | 后进极品美女白嫩翘臀 | 亚洲成人999 | 青青艹在线观看 | 美女黄免费 | 三级黄色片免费观看 | 99精品一区二区三区无码吞精 | 国产乱码一区二区三区在线观看 | 韩国美女被c | 欧美人妖老妇 | 中文字幕在线视频不卡 | 2025韩国大尺度电影 | 日本精品久久久久中文字幕 | 午夜在线视频免费 | 夜夜高潮夜夜爽国产伦精品 | 人人艹人人| 99成人国产精品视频 | 动漫美女被吸乳奶动漫视频 | 亚洲精品视频在线看 | 91在线免费播放 | 视频黄页在线观看 | 国产经典一区二区三区 | 久久久久久视 | 找个毛片看看 | 欧美1 | 天天草综合 | av在线收看 | 欧美午夜精品久久久久久浪潮 | 中文字幕免费av | 91视频首页 | 久久人人爽人人爽 | 内射毛片内射国产夫妻 | 日本一区二区三区精品视频 | 一区二区国产欧美 | 国产在线午夜 | 日韩成人一区二区 | 人人人妻人人澡人人爽欧美一区 | 欧美日韩中文国产一区发布 | 国产精品二 | 夏目彩春娇喘呻吟高潮迭起 | 欧美另类国产 | 1000部拍拍拍18勿入免费视频 | 四虎成人精品永久免费av九九 | 亚洲专区免费 | av在线片| 色臀| 韩日精品中文字幕 | 爱爱动态图 | 一区二区三区 日韩 | 美女视频黄色在线观看 | 熟妇高潮一区二区三区在线播放 | 伊人影院在线观看 | 福利在线播放 | 国产一二区在线观看 | 国产成人久久精品麻豆二区 | 欧美乱视频| 亚洲欧美视频在线播放 | 国产三级在线免费 | 熊猫成人网 | 成人午夜在线免费观看 | 久久久永久久久人妻精品麻豆 | 黄色特一级 | 日本一区二区不卡在线 | 国产男人的天堂 | 亚洲成人系列 | 丁香综合 | 国产精品一二三级 | 男女啪啪网站免费 | 人人澡澡人人 | 激情开心成人网 | 亚洲午夜激情视频 | 国产网红主播精品av | 老司机福利院 | 国产视频一区二区 | 麻豆理论片 | 日本一区二区三区在线看 | 亚洲二区一区 | 国产精品suv一区二区 |