android中之断点续传
16lz
2021-01-23
此源码有助于理解;也是参照网上大神案例来改写的
源代码贴上
package com.xm.download;import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.InputStream;import java.io.InputStreamReader;import java.io.RandomAccessFile;import java.net.HttpURLConnection;import java.net.URL;import android.app.Activity;import android.os.Bundle;import android.os.Environment;import android.os.Handler;import android.os.Message;import android.view.View;import android.widget.ProgressBar;import android.widget.TextView;public class MainActivity extends Activity {final String path="http://gdown.baidu.com/data/wisegame/775ed200394c4c3d/QQyinle_283.apk";final String pathName="QQyinle_283.apk";final int ThreadCount=3;static int finishedThread;int currentProgress;private ProgressBar pb;TextView tv;Handler handler=new Handler(){@Overridepublic void handleMessage(Message msg) {if(msg.what==1){//把变量改成long,在long下运算tv.setText((long)pb.getProgress() * 100 / pb.getMax() + "%");}}};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);pb=(ProgressBar)findViewById(R.id.pb);tv=(TextView)findViewById(R.id.tv);}/** * * @param v */public void click(View v){Thread ad=new Thread(){@Overridepublic void run() {//发送get请求try {URL url=new URL(path);HttpURLConnection huc=(HttpURLConnection)url.openConnection();huc.setRequestMethod("GET");huc.setConnectTimeout(5000);huc.setReadTimeout(5000);if(huc.getResponseCode()==200)//请求成功{int contentLenth=huc.getContentLength();//得到长度//设置进度条的最大长度为文件的长度pb.setMax(contentLenth);//生成临时文件File file=new File(Environment.getExternalStorageDirectory(),pathName);RandomAccessFile raf=new RandomAccessFile(file,"rwd");raf.setLength(contentLenth);//设置大小raf.close();//计算出每个区间的下载大小int size=contentLenth/ThreadCount;for(int i=0;i
最后;别忘了把权限加上哦
更多相关文章
- android读写文件
- C# mono android 图片上传进度条实现
- Android内核的根文件系统
- android中进度条控件
- android获取文件目录
- Android代码实现APK文件的安装与卸载
- Android 文件实现断点上传