From 5d3c0a2b916ba1361016c70d2aacc5d99c10685a Mon Sep 17 00:00:00 2001 From: AriaLyy <511455842@qq.com> Date: Sat, 4 Mar 2017 13:57:10 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=B8=8B=E8=BD=BD=E5=A4=B1?= =?UTF-8?q?=E8=B4=A5=E9=87=8D=E8=AF=95=E4=B8=8D=E8=B5=B7=E4=BD=9C=E7=94=A8?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../aria/core/queue/pool/ExecutePool.java | 2 -- .../core/scheduler/DownloadSchedulers.java | 16 +++++----- .../aria/core/scheduler/UploadSchedulers.java | 17 +++++----- .../arialyy/aria/core/upload/UploadUtil.java | 2 +- app/src/main/AndroidManifest.xml | 1 + .../simple/download/SingleTaskActivity.java | 31 ++++++++++--------- .../arialyy/simple/upload/UploadActivity.java | 12 +++---- 7 files changed, 43 insertions(+), 38 deletions(-) diff --git a/Aria/src/main/java/com/arialyy/aria/core/queue/pool/ExecutePool.java b/Aria/src/main/java/com/arialyy/aria/core/queue/pool/ExecutePool.java index 9cfed938..450018f6 100644 --- a/Aria/src/main/java/com/arialyy/aria/core/queue/pool/ExecutePool.java +++ b/Aria/src/main/java/com/arialyy/aria/core/queue/pool/ExecutePool.java @@ -97,7 +97,6 @@ public class ExecutePool implements IPool { boolean s = mExecuteQueue.offer(newTask); Log.w(TAG, "任务添加" + (s ? "成功" : "失败,【" + url + "】")); if (s) { - newTask.start(); mExecuteArray.put(CommonUtil.keyToHashKey(url), newTask); } return s; @@ -114,7 +113,6 @@ public class ExecutePool implements IPool { return false; } oldTask.stop(); - // wait(200); String key = CommonUtil.keyToHashKey(oldTask.getKey()); mExecuteArray.remove(key); } catch (InterruptedException e) { diff --git a/Aria/src/main/java/com/arialyy/aria/core/scheduler/DownloadSchedulers.java b/Aria/src/main/java/com/arialyy/aria/core/scheduler/DownloadSchedulers.java index 41c12be8..382d547b 100644 --- a/Aria/src/main/java/com/arialyy/aria/core/scheduler/DownloadSchedulers.java +++ b/Aria/src/main/java/com/arialyy/aria/core/scheduler/DownloadSchedulers.java @@ -34,8 +34,8 @@ import java.util.concurrent.ConcurrentHashMap; */ public class DownloadSchedulers implements ISchedulers { - private static final String TAG = "DownloadSchedulers"; - private static final Object LOCK = new Object(); + private static final String TAG = "DownloadSchedulers"; + private static final Object LOCK = new Object(); private static volatile DownloadSchedulers INSTANCE = null; /** @@ -94,8 +94,8 @@ public class DownloadSchedulers implements ISchedulers { startNextTask(); break; case FAIL: - mQueue.removeTask(entity); - handleFailTask(entity); + //mQueue.removeTask(entity); + handleFailTask(task); break; } return true; @@ -156,9 +156,9 @@ public class DownloadSchedulers implements ISchedulers { /** * 处理下载任务下载失败的情形 * - * @param entity 失败实体 + * @param task 下载任务 */ - private void handleFailTask(final DownloadEntity entity) { + private void handleFailTask(final DownloadTask task) { final Configuration config = Configuration.getInstance(); CountDownTimer timer = new CountDownTimer(config.getReTryInterval(), 1000) { @Override public void onTick(long millisUntilFinished) { @@ -166,7 +166,8 @@ public class DownloadSchedulers implements ISchedulers { } @Override public void onFinish() { - if (entity.getFailNum() <= config.getReTryNum()) { + DownloadEntity entity = task.getDownloadEntity(); + if (entity.getFailNum() < config.getReTryNum()) { DownloadTask task = mQueue.getTask(entity); mQueue.reTryStart(task); try { @@ -175,6 +176,7 @@ public class DownloadSchedulers implements ISchedulers { e.printStackTrace(); } } else { + mQueue.removeTask(entity); startNextTask(); } } diff --git a/Aria/src/main/java/com/arialyy/aria/core/scheduler/UploadSchedulers.java b/Aria/src/main/java/com/arialyy/aria/core/scheduler/UploadSchedulers.java index 81bd6cbf..2dc0b6fa 100644 --- a/Aria/src/main/java/com/arialyy/aria/core/scheduler/UploadSchedulers.java +++ b/Aria/src/main/java/com/arialyy/aria/core/scheduler/UploadSchedulers.java @@ -33,10 +33,12 @@ import java.util.concurrent.ConcurrentHashMap; * 上传任务调度器 */ public class UploadSchedulers implements ISchedulers { - private static final String TAG = "UploadSchedulers"; - private static final Object LOCK = new Object(); - private static volatile UploadSchedulers INSTANCE = null; - private Map> mSchedulerListeners = + private static final String TAG = + "UploadSchedulers"; + private static final Object LOCK = + new Object(); + private static volatile UploadSchedulers INSTANCE = null; + private Map> mSchedulerListeners = new ConcurrentHashMap<>(); private UploadTaskQueue mQueue; @@ -68,7 +70,7 @@ public class UploadSchedulers implements ISchedulers { } } - private void handleFailTask(final UploadEntity entity) { + private void handleFailTask(final UploadTask task) { final Configuration config = Configuration.getInstance(); CountDownTimer timer = new CountDownTimer(config.getReTryInterval(), 1000) { @Override public void onTick(long millisUntilFinished) { @@ -76,6 +78,7 @@ public class UploadSchedulers implements ISchedulers { } @Override public void onFinish() { + UploadEntity entity = task.getUploadEntity(); if (entity.getFailNum() <= config.getReTryNum()) { UploadTask task = mQueue.getTask(entity); mQueue.reTryStart(task); @@ -85,6 +88,7 @@ public class UploadSchedulers implements ISchedulers { e.printStackTrace(); } } else { + mQueue.removeTask(entity); startNextTask(); } } @@ -176,8 +180,7 @@ public class UploadSchedulers implements ISchedulers { startNextTask(); break; case FAIL: - mQueue.removeTask(entity); - handleFailTask(entity); + handleFailTask(task); break; } return true; diff --git a/Aria/src/main/java/com/arialyy/aria/core/upload/UploadUtil.java b/Aria/src/main/java/com/arialyy/aria/core/upload/UploadUtil.java index ce9abc61..bf48e354 100644 --- a/Aria/src/main/java/com/arialyy/aria/core/upload/UploadUtil.java +++ b/Aria/src/main/java/com/arialyy/aria/core/upload/UploadUtil.java @@ -178,7 +178,7 @@ public class UploadUtil implements Runnable { } outputStream.flush(); - outputStream.close(); + //outputStream.close(); inputStream.close(); writer.append(LINE_END); writer.flush(); diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index edc9d707..e3dcab96 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -23,6 +23,7 @@ + diff --git a/app/src/main/java/com/arialyy/simple/download/SingleTaskActivity.java b/app/src/main/java/com/arialyy/simple/download/SingleTaskActivity.java index 12941c7f..f565283b 100644 --- a/app/src/main/java/com/arialyy/simple/download/SingleTaskActivity.java +++ b/app/src/main/java/com/arialyy/simple/download/SingleTaskActivity.java @@ -42,26 +42,27 @@ import com.arialyy.simple.databinding.ActivitySingleBinding; import com.arialyy.simple.widget.HorizontalProgressBarWithNumber; public class SingleTaskActivity extends BaseActivity { - public static final int DOWNLOAD_PRE = 0x01; - public static final int DOWNLOAD_STOP = 0x02; - public static final int DOWNLOAD_FAILE = 0x03; - public static final int DOWNLOAD_CANCEL = 0x04; - public static final int DOWNLOAD_RESUME = 0x05; + public static final int DOWNLOAD_PRE = 0x01; + public static final int DOWNLOAD_STOP = 0x02; + public static final int DOWNLOAD_FAILE = 0x03; + public static final int DOWNLOAD_CANCEL = 0x04; + public static final int DOWNLOAD_RESUME = 0x05; public static final int DOWNLOAD_COMPLETE = 0x06; - public static final int DOWNLOAD_RUNNING = 0x07; + public static final int DOWNLOAD_RUNNING = 0x07; private static final String DOWNLOAD_URL = //"http://kotlinlang.org/docs/kotlin-docs.pdf"; - "https://atom-installer.github.com/v1.13.0/AtomSetup.exe?s=1484074138&ext=.exe"; + //"https://atom-installer.github.com/v1.13.0/AtomSetup.exe?s=1484074138&ext=.exe"; + "http://1_static.gaoshouyou.com/d/22/94/822260b849944492caadd2983f9bb624.apk"; @Bind(R.id.progressBar) HorizontalProgressBarWithNumber mPb; - @Bind(R.id.start) Button mStart; - @Bind(R.id.stop) Button mStop; - @Bind(R.id.cancel) Button mCancel; - @Bind(R.id.size) TextView mSize; - @Bind(R.id.toolbar) Toolbar toolbar; - @Bind(R.id.speed) TextView mSpeed; - @Bind(R.id.img) ImageView mImg; - private DownloadEntity mEntity; + @Bind(R.id.start) Button mStart; + @Bind(R.id.stop) Button mStop; + @Bind(R.id.cancel) Button mCancel; + @Bind(R.id.size) TextView mSize; + @Bind(R.id.toolbar) Toolbar toolbar; + @Bind(R.id.speed) TextView mSpeed; + @Bind(R.id.img) ImageView mImg; + private DownloadEntity mEntity; private BroadcastReceiver mReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); diff --git a/app/src/main/java/com/arialyy/simple/upload/UploadActivity.java b/app/src/main/java/com/arialyy/simple/upload/UploadActivity.java index c75b2cda..79302faf 100644 --- a/app/src/main/java/com/arialyy/simple/upload/UploadActivity.java +++ b/app/src/main/java/com/arialyy/simple/upload/UploadActivity.java @@ -141,12 +141,12 @@ public class UploadActivity extends BaseActivity { } @OnClick(R.id.upload) void upload() { - //Aria.upload(this) - // .load(FILE_PATH) - // .setUploadUrl("http://172.18.104.50:8080/upload/sign_file") - // .setAttachment("file") - // .start(); - test(); + Aria.upload(this) + .load(FILE_PATH) + .setUploadUrl("http://192.168.1.8:8080/upload/sign_file") + .setAttachment("file") + .start(); + //test(); } @OnClick(R.id.stop) void stop() {