xutils 斷點下載

十一假期結束了,大家過得快樂嗎?我是過的蠻累的!今天來公司的第一件事就是學習一下斷點下載,等幾天項目要用到下載,先儲備一下,免得到時候手忙腳亂。
從拿到原型圖看到有下載的需求,我就開始查看有關下載的學習資料,原生的下載寫起來很麻煩,還要自己寫數據庫,後來經朋友提點用xutils框架,那真是超級簡單了,只需要幾步就可以了,完全不用自己寫數據庫。
第一步,依賴jar包
第二步,主要用到 HttpUtils類,把相關代碼複製到工程中就ok了,下面貼上代碼:

public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private TextView tv;
private Button btn;
private ProgressBar pb;
private String path = “/sdcard/xUtils/” + System.currentTimeMillis() + “ceshi.mp4”;
private String url = “http://is.snssdk.com/neihan/video/playback/?video_id=e5682f0f939e4820abba9590fc7bf0af&quality=origin&line=0&is_gif=0“;
private HttpHandler handler;
private boolean isDownloading = false;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    tv = (TextView) findViewById(R.id.tv);
    btn = (Button) findViewById(R.id.btn);
    pb = (ProgressBar) findViewById(R.id.pb);
    pb.setMax(100);
    btn.setOnClickListener(this);

}

@Override
public void onClick(View v) {

    xUtils_Download();

}

private void xUtils_Download() {
    HttpUtils http = new HttpUtils();

    if (!isDownloading) {
        isDownloading = true;
        handler = http.download(url, path, true, false, new RequestCallBack<File>() {
            @Override
            public void onStart() {
                super.onStart();
                tv.setVisibility(View.VISIBLE);


            }

            @Override
            public void onLoading(long total, long current, boolean isUploading) {
                super.onLoading(total, current, isUploading);
                btn.setText("正在下載");
                pb.setProgress((int) ((double) current
                        / (double) total * 100));
                tv.setText((int) (current * 100 / total) + "%");
                Log.e("tag","開始下載了e");
            }

            @Override
            public void onSuccess(ResponseInfo<File> responseInfo) {
                tv.setText(responseInfo.result.getPath());
            }

            @Override
            public void onFailure(HttpException e, String s) {
                tv.setText("下載失敗-->" + s);
            }
        });

    }

//正在下載時點擊,則停止下載
else {
handler.cancel();
isDownloading = false;
btn.setText(“暫停下載”);
}
}
}

可以了,就是這麼簡單,下載完成就可以直接播放了

發佈了22 篇原創文章 · 獲贊 8 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章