From 9d354fa935522ac238efd796af3563ef0caeb8d8 Mon Sep 17 00:00:00 2001 From: AriaLyy <511455842@qq.com> Date: Mon, 25 Sep 2017 21:22:10 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=B8=8A=E4=B8=80=E4=B8=AA?= =?UTF-8?q?=E7=89=88=E6=9C=AC=E5=87=BA=E7=8E=B0=E7=9A=84=E7=BD=91=E7=BB=9C?= =?UTF-8?q?=E6=9C=AA=E8=BF=9E=E6=8E=A5=EF=BC=8C=E6=B2=A1=E6=9C=89=E5=A4=B1?= =?UTF-8?q?=E8=B4=A5=E5=9B=9E=E6=8E=89=E7=9A=84=E9=97=AE=E9=A2=98=EF=BC=8C?= =?UTF-8?q?=E5=8D=95=E7=BA=BF=E7=A8=8B=E4=BB=BB=E5=8A=A1=E7=BA=BF=E7=A8=8B?= =?UTF-8?q?=E5=B0=86=E4=B8=8D=E5=86=8D=E5=A4=B1=E8=B4=A5=E9=87=8D=E8=AF=95?= =?UTF-8?q?=EF=BC=8C=E6=B7=BB=E5=8A=A0retry()=EF=BC=8C=E4=BB=BB=E5=8A=A1ru?= =?UTF-8?q?nning=E7=8A=B6=E6=80=81=E4=B8=8B=EF=BC=8C5s=E9=92=9F=E4=BF=9D?= =?UTF-8?q?=E5=AD=98=E4=B8=80=E6=AC=A1=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../aria/core/common/AbsThreadTask.java | 20 ++++++++++--------- .../aria/core/common/StateConstance.java | 2 +- .../aria/core/download/BaseDListener.java | 8 ++++++++ .../download/downloader/AbsGroupUtil.java | 12 +++++++++-- .../com/arialyy/aria/core/inf/AbsTarget.java | 17 ++++++++++++++-- .../aria/core/inf/AbsUploadTarget.java | 2 ++ .../aria/core/upload/BaseUListener.java | 7 +++++++ DEV_LOG.md | 2 ++ app/src/main/assets/aria_config.xml | 2 +- .../simple/download/FtpDownloadActivity.java | 2 +- .../simple/download/SingleTaskActivity.java | 4 ++-- .../simple/upload/FtpUploadActivity.java | 4 ++-- 12 files changed, 62 insertions(+), 20 deletions(-) diff --git a/Aria/src/main/java/com/arialyy/aria/core/common/AbsThreadTask.java b/Aria/src/main/java/com/arialyy/aria/core/common/AbsThreadTask.java index 71ecc289..f7971b89 100644 --- a/Aria/src/main/java/com/arialyy/aria/core/common/AbsThreadTask.java +++ b/Aria/src/main/java/com/arialyy/aria/core/common/AbsThreadTask.java @@ -180,7 +180,7 @@ public abstract class AbsThreadTask= THREAD_NUM; } /** diff --git a/Aria/src/main/java/com/arialyy/aria/core/download/BaseDListener.java b/Aria/src/main/java/com/arialyy/aria/core/download/BaseDListener.java index 9422e90c..dd82e880 100644 --- a/Aria/src/main/java/com/arialyy/aria/core/download/BaseDListener.java +++ b/Aria/src/main/java/com/arialyy/aria/core/download/BaseDListener.java @@ -31,12 +31,14 @@ import java.lang.ref.WeakReference; class BaseDListener> implements IDownloadListener { protected WeakReference outHandler; + private int RUN_SAVE_INTERVAL = 5 * 1000; //5s保存一次下载中的进度 private long mLastLen = 0; //上一次发送长度 private boolean isFirst = true; protected ENTITY mEntity; protected TASK mTask; private boolean isConvertSpeed = false; boolean isWait = false; + private long mLastSaveTime; BaseDListener(TASK task, Handler outHandler) { this.outHandler = new WeakReference<>(outHandler); @@ -45,6 +47,7 @@ class BaseDListener> final AriaManager manager = AriaManager.getInstance(AriaManager.APP); isConvertSpeed = manager.getDownloadConfig().isConvertSpeed(); mLastLen = mEntity.getCurrentProgress(); + mLastSaveTime = System.currentTimeMillis(); } @Override public void onPre() { @@ -82,6 +85,11 @@ class BaseDListener> } handleSpeed(speed); sendInState2Target(ISchedulers.RUNNING); + if (System.currentTimeMillis() - mLastSaveTime >= RUN_SAVE_INTERVAL){ + saveData(IEntity.STATE_RUNNING, currentLocation); + mLastSaveTime = System.currentTimeMillis(); + } + mLastLen = currentLocation; } diff --git a/Aria/src/main/java/com/arialyy/aria/core/download/downloader/AbsGroupUtil.java b/Aria/src/main/java/com/arialyy/aria/core/download/downloader/AbsGroupUtil.java index 3a4678d0..ea640ccc 100644 --- a/Aria/src/main/java/com/arialyy/aria/core/download/downloader/AbsGroupUtil.java +++ b/Aria/src/main/java/com/arialyy/aria/core/download/downloader/AbsGroupUtil.java @@ -25,6 +25,7 @@ import com.arialyy.aria.core.inf.IDownloadListener; import com.arialyy.aria.core.inf.IEntity; import com.arialyy.aria.orm.DbEntity; import com.arialyy.aria.util.CommonUtil; +import com.arialyy.aria.util.NetUtils; import java.io.File; import java.util.HashMap; import java.util.List; @@ -405,7 +406,8 @@ public abstract class AbsGroupUtil implements IUtil { DownloadTaskEntity taskEntity; DownloadEntity entity; - + private int RUN_SAVE_INTERVAL = 5 * 1000; //5s保存一次下载中的进度 + private long mLastSaveTime; long lastLen = 0; ChildDownloadListener(DownloadTaskEntity entity) { @@ -413,6 +415,7 @@ public abstract class AbsGroupUtil implements IUtil { this.entity = taskEntity.getEntity(); lastLen = this.entity.getCurrentProgress(); this.entity.setFailNum(0); + mLastSaveTime = System.currentTimeMillis(); } @Override public void onPre() { @@ -444,6 +447,10 @@ public abstract class AbsGroupUtil implements IUtil { entity.setCurrentProgress(currentLocation); handleSpeed(speed); mListener.onSubRunning(entity); + if (System.currentTimeMillis() - mLastSaveTime >= RUN_SAVE_INTERVAL) { + saveData(IEntity.STATE_RUNNING, currentLocation); + mLastSaveTime = System.currentTimeMillis(); + } lastLen = currentLocation; } @@ -491,7 +498,8 @@ public abstract class AbsGroupUtil implements IUtil { */ private void reTry(boolean needRetry) { synchronized (AriaManager.LOCK) { - if (entity.getFailNum() < 5 && isRunning && needRetry) { + if (entity.getFailNum() < 5 && isRunning && needRetry && NetUtils.isConnected( + AriaManager.APP)) { reStartTask(); } else { mFailNum++; diff --git a/Aria/src/main/java/com/arialyy/aria/core/inf/AbsTarget.java b/Aria/src/main/java/com/arialyy/aria/core/inf/AbsTarget.java index f0a24b9e..a214e027 100644 --- a/Aria/src/main/java/com/arialyy/aria/core/inf/AbsTarget.java +++ b/Aria/src/main/java/com/arialyy/aria/core/inf/AbsTarget.java @@ -19,10 +19,13 @@ import android.support.annotation.NonNull; import android.text.TextUtils; import android.util.Log; import com.arialyy.aria.core.AriaManager; +import com.arialyy.aria.core.command.ICmd; import com.arialyy.aria.core.command.normal.CancelCmd; import com.arialyy.aria.core.command.normal.NormalCmdFactory; import com.arialyy.aria.core.common.RequestEnum; import com.arialyy.aria.util.CommonUtil; +import java.util.ArrayList; +import java.util.List; import java.util.Map; import java.util.Set; @@ -199,6 +202,16 @@ public abstract class AbsTarget cmds = new ArrayList<>(); + cmds.add(CommonUtil.createNormalCmd(mTargetName, mTaskEntity, NormalCmdFactory.TASK_STOP)); + cmds.add(CommonUtil.createNormalCmd(mTargetName, mTaskEntity, NormalCmdFactory.TASK_START)); + AriaManager.getInstance(AriaManager.APP).setCmds(cmds).exe(); + } + /** * 删除任务 * @@ -206,8 +219,8 @@ public abstract class AbsTarget> implements IUploadListener { private WeakReference outHandler; + private int RUN_SAVE_INTERVAL = 5 * 1000; //5s保存一次下载中的进度 private long mLastLen = 0; //上一次发送长度 private boolean isFirst = true; protected ENTITY mEntity; protected TASK mTask; private boolean isConvertSpeed = false; boolean isWait = false; + private long mLastSaveTime; BaseUListener(TASK task, Handler outHandler) { this.outHandler = new WeakReference<>(outHandler); @@ -45,6 +47,7 @@ class BaseUListener> final AriaManager manager = AriaManager.getInstance(AriaManager.APP); isConvertSpeed = manager.getDownloadConfig().isConvertSpeed(); mLastLen = mEntity.getCurrentProgress(); + mLastSaveTime = System.currentTimeMillis(); } @Override public void onPre() { @@ -71,6 +74,10 @@ class BaseUListener> } handleSpeed(speed); sendInState2Target(ISchedulers.RUNNING); + if (System.currentTimeMillis() - mLastSaveTime >= RUN_SAVE_INTERVAL) { + saveData(IEntity.STATE_RUNNING, currentLocation); + mLastSaveTime = System.currentTimeMillis(); + } mLastLen = currentLocation; } diff --git a/DEV_LOG.md b/DEV_LOG.md index cf78df06..e9c45098 100644 --- a/DEV_LOG.md +++ b/DEV_LOG.md @@ -1,4 +1,6 @@ ## 开发日志 + + v_3.3.2 新加reTry(),修复上一个版本不会回调失败事件的问题;增加running状态下5秒钟保存一次数据库的功能 + + v_3.3.1 增加网络事件,网络未连接,将不会重试下载,修复删除未开始任务,状态回调错误 + v_3.3.0 增加任务组子任务暂停和开始控制功能、修复5.0系统以上数据库多生成两个字段的bug、去掉addSchedulerListener事件 + v_3.2.26 修复任务组有时注解不起作用的问题 + v_3.2.25 修复删除任务组文件,记录无法删除的问题 diff --git a/app/src/main/assets/aria_config.xml b/app/src/main/assets/aria_config.xml index b2d0febd..2b8785d4 100644 --- a/app/src/main/assets/aria_config.xml +++ b/app/src/main/assets/aria_config.xml @@ -44,7 +44,7 @@ - + diff --git a/app/src/main/java/com/arialyy/simple/download/FtpDownloadActivity.java b/app/src/main/java/com/arialyy/simple/download/FtpDownloadActivity.java index 4f2dca93..7c53af31 100644 --- a/app/src/main/java/com/arialyy/simple/download/FtpDownloadActivity.java +++ b/app/src/main/java/com/arialyy/simple/download/FtpDownloadActivity.java @@ -35,7 +35,7 @@ import java.io.File; * Ftp下载测试 */ public class FtpDownloadActivity extends BaseActivity { - private final String URL = "ftp://192.168.8.2:21/test.apk"; + private final String URL = "ftp://172.18.104.147:21/haha/ftp_test.apk"; @Override protected void init(Bundle savedInstanceState) { super.init(savedInstanceState); 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 306ff9fb..49e9bad1 100644 --- a/app/src/main/java/com/arialyy/simple/download/SingleTaskActivity.java +++ b/app/src/main/java/com/arialyy/simple/download/SingleTaskActivity.java @@ -46,8 +46,8 @@ public class SingleTaskActivity extends BaseActivity { 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"; - //"http://static.gaoshouyou.com/d/22/94/822260b849944492caadd2983f9bb624.apk"; - "http://sitcac.daxincf.cn/wp-content/uploads/swift_vido/01/element.mp4_1"; + "http://static.gaoshouyou.com/d/22/94/822260b849944492caadd2983f9bb624.apk"; + //"http://sitcac.daxincf.cn/wp-content/uploads/swift_vido/01/element.mp4_1"; //"http://120.25.196.56:8000/filereq?id=15692406294&ipncid=105635&client=android&filename=20170819185541.avi"; //"http://down2.xiaoshuofuwuqi.com/d/file/filetxt/20170608/14/%BA%DA%CE%D7%CA%A6%E1%C8%C6%F0.txt"; //"http://tinghuaapp.oss-cn-shanghai.aliyuncs.com/20170612201739607815"; diff --git a/app/src/main/java/com/arialyy/simple/upload/FtpUploadActivity.java b/app/src/main/java/com/arialyy/simple/upload/FtpUploadActivity.java index f0355077..79616f01 100644 --- a/app/src/main/java/com/arialyy/simple/upload/FtpUploadActivity.java +++ b/app/src/main/java/com/arialyy/simple/upload/FtpUploadActivity.java @@ -34,8 +34,8 @@ import com.arialyy.simple.databinding.ActivityFtpUploadBinding; * Ftp 文件上传demo */ public class FtpUploadActivity extends BaseActivity { - private final String FILE_PATH = "/mnt/sdcard/Download/group_test_3/战斗吧剑灵.apk"; - private final String URL = "ftp://172.18.104.66:21/upload/"; + private final String FILE_PATH = "/mnt/sdcard/成都.mp3"; + private final String URL = "ftp://172.18.104.229:21/upload/测试"; @Override protected void init(Bundle savedInstanceState) { setTile("FTP 文件上传");