pull/2/head
lyy 8 years ago
parent 607c6162fa
commit de3abbd28b
  1. 31
      downloadutil/src/main/java/com/arialyy/downloadutil/util/DownLoadUtil.java

@ -13,6 +13,8 @@ import java.net.HttpURLConnection;
import java.net.MalformedURLException; import java.net.MalformedURLException;
import java.net.URL; import java.net.URL;
import java.util.Properties; import java.util.Properties;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
/** /**
* Created by lyy on 2015/8/25. * Created by lyy on 2015/8/25.
@ -41,6 +43,7 @@ final class DownLoadUtil {
private int mStopNum = 0; private int mStopNum = 0;
private Context mContext; private Context mContext;
private DownloadEntity mDownloadEntity; private DownloadEntity mDownloadEntity;
private ExecutorService mFixedThreadPool = Executors.newFixedThreadPool(THREAD_NUM);
public DownLoadUtil(Context context, DownloadEntity entity) { public DownLoadUtil(Context context, DownloadEntity entity) {
mContext = context.getApplicationContext(); mContext = context.getApplicationContext();
@ -67,6 +70,10 @@ final class DownLoadUtil {
*/ */
public void cancelDownload() { public void cancelDownload() {
isCancel = true; isCancel = true;
Log.d(TAG, "++++++++++++++++ onCancel +++++++++++++++++");
isDownloading = false;
mFixedThreadPool.shutdown();
mListener.onCancel();
} }
/** /**
@ -74,6 +81,10 @@ final class DownLoadUtil {
*/ */
public void stopDownload() { public void stopDownload() {
isStop = true; isStop = true;
Log.d(TAG, "++++++++++++++++ onStop +++++++++++++++++");
isDownloading = false;
mFixedThreadPool.shutdown();
mListener.onStop(mCurrentLocation);
} }
/** /**
@ -153,6 +164,7 @@ final class DownLoadUtil {
} }
int code = conn.getResponseCode(); int code = conn.getResponseCode();
if (code == 200) { if (code == 200) {
int fileLength = conn.getContentLength(); int fileLength = conn.getContentLength();
//必须建一个文件 //必须建一个文件
Util.createFile(filePath); Util.createFile(filePath);
@ -240,7 +252,8 @@ final class DownLoadUtil {
if (l == -1) continue; if (l == -1) continue;
Thread task = tasks.get(l); Thread task = tasks.get(l);
if (task != null) { if (task != null) {
task.start(); mFixedThreadPool.execute(task);
//task.start();
} }
} }
} else { } else {
@ -374,11 +387,11 @@ final class DownLoadUtil {
String location = String.valueOf(currentLocation); String location = String.valueOf(currentLocation);
Log.i(TAG, "thread_" + dEntity.threadId + "_stop, stop location ==> " + currentLocation); Log.i(TAG, "thread_" + dEntity.threadId + "_stop, stop location ==> " + currentLocation);
writeConfig(dEntity.tempFile.getName() + "_record_" + dEntity.threadId, location); writeConfig(dEntity.tempFile.getName() + "_record_" + dEntity.threadId, location);
if (mStopNum == THREAD_NUM) { //if (mStopNum == THREAD_NUM) {
Log.d(TAG, "++++++++++++++++ onStop +++++++++++++++++"); // Log.d(TAG, "++++++++++++++++ onStop +++++++++++++++++");
isDownloading = false; // isDownloading = false;
mListener.onStop(mCurrentLocation); // mListener.onStop(mCurrentLocation);
} //}
} }
} }
@ -396,9 +409,9 @@ final class DownLoadUtil {
if (dEntity.tempFile.exists()) { if (dEntity.tempFile.exists()) {
dEntity.tempFile.delete(); dEntity.tempFile.delete();
} }
Log.d(TAG, "++++++++++++++++ onCancel +++++++++++++++++"); //Log.d(TAG, "++++++++++++++++ onCancel +++++++++++++++++");
isDownloading = false; //isDownloading = false;
mListener.onCancel(); //mListener.onCancel();
} }
} }
} }

Loading…
Cancel
Save