hc
2023-11-07 f45e756958099c35d6afb746df1d40a1c6302cfc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
package com.rockchip.alexa.jacky.utils;
 
import android.content.Context;
 
import com.coolerfall.download.DownloadCallback;
import com.coolerfall.download.DownloadManager;
import com.coolerfall.download.DownloadRequest;
import com.coolerfall.download.OkHttpDownloader;
import com.coolerfall.download.Priority;
 
import java.util.concurrent.TimeUnit;
 
/**
 * Created by cjs on 2017/5/5.
 */
 
public class HttpDownloader {
    private Context mContext;
    private int mDownloadId;
    private DownloadManager mDownloadManager;
 
    public HttpDownloader(Context context){
        mContext = context;
        mDownloadManager = new DownloadManager.Builder().context(mContext)
                .downloader(OkHttpDownloader.create())
                .threadPoolSize(2)
                .build();
    }
 
    public int startDownload(String downloadUrlStr,String destPath,String fileName,DownloadCallback downloadCallback){
        // prepare download
        DownloadRequest request = new DownloadRequest.Builder()
                .url(downloadUrlStr)
                .retryTime(3)
                .retryInterval(2, TimeUnit.SECONDS)
                .progressInterval(1, TimeUnit.SECONDS)
                .priority(Priority.HIGH)
                .allowedNetworkTypes(DownloadRequest.NETWORK_WIFI)
                .destinationFilePath(destPath + fileName)
                .downloadCallback(downloadCallback)
                .build();
        mDownloadId = mDownloadManager.add(request);
        return mDownloadId;
    }
 
    public void cancelTask(){
        if(mDownloadId != 0){
            mDownloadManager.cancel(mDownloadId);
            mDownloadId = 0;
        }
    }
}