bug fix
This commit is contained in:
@ -2,7 +2,7 @@ apply plugin: 'com.android.library'
|
||||
|
||||
android {
|
||||
compileSdkVersion 23
|
||||
buildToolsVersion "23.0.2"
|
||||
buildToolsVersion '25.0.2'
|
||||
|
||||
defaultConfig {
|
||||
minSdkVersion 9
|
||||
|
@ -40,18 +40,18 @@ public class DownloadUtil implements IDownloadUtil, Runnable {
|
||||
/**
|
||||
* 线程数
|
||||
*/
|
||||
private final int THREAD_NUM;
|
||||
private final int THREAD_NUM;
|
||||
//下载监听
|
||||
private IDownloadListener mListener;
|
||||
private int mConnectTimeOut = 5000 * 4; //连接超时时间
|
||||
private int mReadTimeOut = 5000 * 20; //流读取的超时时间
|
||||
private boolean isNewTask = true;
|
||||
private IDownloadListener mListener;
|
||||
private int mConnectTimeOut = 5000 * 4; //连接超时时间
|
||||
private int mReadTimeOut = 5000 * 20; //流读取的超时时间
|
||||
private boolean isNewTask = true;
|
||||
private boolean isSupportBreakpoint = true;
|
||||
private Context mContext;
|
||||
private DownloadEntity mDownloadEntity;
|
||||
private Context mContext;
|
||||
private DownloadEntity mDownloadEntity;
|
||||
private ExecutorService mFixedThreadPool;
|
||||
private File mDownloadFile; //下载的文件
|
||||
private File mConfigFile;//下载信息配置文件
|
||||
private File mDownloadFile; //下载的文件
|
||||
private File mConfigFile;//下载信息配置文件
|
||||
private SparseArray<Runnable> mTask = new SparseArray<>();
|
||||
private DownloadStateConstance mConstance;
|
||||
|
||||
@ -223,8 +223,11 @@ public class DownloadUtil implements IDownloadUtil, Runnable {
|
||||
mListener.supportBreakpoint(false);
|
||||
Log.w(TAG, "该下载链接不支持断点下载");
|
||||
handleBreakpoint(conn);
|
||||
} else if (code == HttpURLConnection.HTTP_NOT_FOUND) {
|
||||
Log.w(TAG, "任务【" + mDownloadEntity.getDownloadUrl() + "】下载失败,错误码:404");
|
||||
//mListener.onCancel();
|
||||
} else {
|
||||
failDownload("任务【" + mDownloadEntity.getDownloadUrl() + "】下载失败,返回码:" + code);
|
||||
failDownload("任务【" + mDownloadEntity.getDownloadUrl() + "】下载失败,错误码:" + code);
|
||||
}
|
||||
} catch (IOException e) {
|
||||
failDownload("下载失败【downloadUrl:"
|
||||
@ -244,7 +247,8 @@ public class DownloadUtil implements IDownloadUtil, Runnable {
|
||||
//不支持断点只能单线程下载
|
||||
if (!isSupportBreakpoint) {
|
||||
ConfigEntity entity = new ConfigEntity();
|
||||
entity.FILE_SIZE = conn.getContentLength();
|
||||
long len = conn.getContentLength();;
|
||||
entity.FILE_SIZE = len;
|
||||
entity.DOWNLOAD_URL = mDownloadEntity.getDownloadUrl();
|
||||
entity.TEMP_FILE = mDownloadFile;
|
||||
entity.THREAD_ID = 0;
|
||||
@ -254,6 +258,7 @@ public class DownloadUtil implements IDownloadUtil, Runnable {
|
||||
entity.isSupportBreakpoint = isSupportBreakpoint;
|
||||
SingleThreadTask task = new SingleThreadTask(mConstance, mListener, entity);
|
||||
mFixedThreadPool.execute(task);
|
||||
mListener.onPostPre(len);
|
||||
mListener.onStart(0);
|
||||
return;
|
||||
}
|
||||
@ -263,7 +268,8 @@ public class DownloadUtil implements IDownloadUtil, Runnable {
|
||||
//RandomAccessFile file = new RandomAccessFile(mDownloadFile.getPath(), "rwd");
|
||||
////设置文件长度
|
||||
//file.setLength(fileLength);
|
||||
BufferedRandomAccessFile file = new BufferedRandomAccessFile(mDownloadFile.getPath(), "rwd", 8192);
|
||||
BufferedRandomAccessFile file =
|
||||
new BufferedRandomAccessFile(mDownloadFile.getPath(), "rwd", 8192);
|
||||
//设置文件长度
|
||||
file.setLength(fileLength);
|
||||
mListener.onPostPre(fileLength);
|
||||
@ -362,12 +368,12 @@ public class DownloadUtil implements IDownloadUtil, Runnable {
|
||||
*/
|
||||
final static class ConfigEntity {
|
||||
//文件大小
|
||||
long FILE_SIZE;
|
||||
long FILE_SIZE;
|
||||
String DOWNLOAD_URL;
|
||||
int THREAD_ID;
|
||||
long START_LOCATION;
|
||||
long END_LOCATION;
|
||||
File TEMP_FILE;
|
||||
int THREAD_ID;
|
||||
long START_LOCATION;
|
||||
long END_LOCATION;
|
||||
File TEMP_FILE;
|
||||
boolean isSupportBreakpoint = true;
|
||||
String CONFIG_FILE_PATH;
|
||||
}
|
||||
|
13
README.md
13
README.md
@ -1,6 +1,6 @@
|
||||
# Aria
|
||||
</br>
|
||||
下载不应该是让人感到痛苦的功能,Aria,致力于让下载傻瓜化。</br>
|
||||
下载不应该是让人感到痛苦的功能,Aria,让下载更简单。</br>
|
||||
+ Aria有以下特点:
|
||||
- 简单
|
||||
- 可在Dialog、popupWindow等组件中使用
|
||||
@ -17,8 +17,7 @@
|
||||
## 下载
|
||||
[](https://bintray.com/arialyy/maven/Aria/_latestVersion)</br>
|
||||
```java
|
||||
compile 'com.arialyy.aria:Aria:2.4.2'
|
||||
```
|
||||
compile 'com.arialyy.aria:Aria:2.4.4'
|
||||
|
||||
## 示例
|
||||

|
||||
@ -133,16 +132,16 @@ Aria支持https下载,如果你希望使用自己的ca证书,那么你需要
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
## 开发日志
|
||||
+ v_2.4.4 修复不支持断点的下载链接拿不到文件大小的问题
|
||||
+ v_2.4.3 修复404链接卡顿的问题
|
||||
+ v_2.4.2 修复失败重试无效的bug
|
||||
+ v_2.4.1 修复下载慢的问题,修复application、service 不能使用的问题
|
||||
+ v_2.4.0 支持https链接下载
|
||||
+ v_2.3.8 修复数据错乱的bug、添加fragment支持
|
||||
+ v_2.3.6 添加dialog、popupWindow支持
|
||||
+ v_2.3.3
|
||||
- 添加断点支持
|
||||
- 修改下载逻辑,让使用更加简单
|
||||
- 修复一个内存泄露的bug
|
||||
+ v_2.3.3 添加断点支持、修改下载逻辑,让使用更加简单、修复一个内存泄露的bug
|
||||
+ v_2.3.1 重命名为Aria,下载流程简化
|
||||
+ v_2.1.1 增加,选择最大下载任务数接口
|
||||
|
||||
|
@ -2,7 +2,7 @@ apply plugin: 'com.android.application'
|
||||
|
||||
android {
|
||||
compileSdkVersion 23
|
||||
buildToolsVersion "23.0.2"
|
||||
buildToolsVersion '25.0.2'
|
||||
|
||||
defaultConfig {
|
||||
applicationId "com.arialyy.simple"
|
||||
|
17
app/proguard-rules.pro
vendored
17
app/proguard-rules.pro
vendored
@ -1,17 +0,0 @@
|
||||
# Add project specific ProGuard rules here.
|
||||
# By default, the flags in this file are appended to flags specified
|
||||
# in D:\sdk/tools/proguard/proguard-android.txt
|
||||
# You can edit the include path and order by changing the proguardFiles
|
||||
# directive in build.gradle.
|
||||
#
|
||||
# For more details, see
|
||||
# http://developer.android.com/guide/developing/tools/proguard.html
|
||||
|
||||
# Add any project specific keep options here:
|
||||
|
||||
# If your project uses WebView with JS, uncomment the following
|
||||
# and specify the fully qualified class name to the JavaScript interface
|
||||
# class:
|
||||
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
|
||||
# public *;
|
||||
#}
|
@ -55,7 +55,8 @@ public class SingleTaskActivity extends BaseActivity<ActivitySingleBinding> {
|
||||
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/21/e8/61218d78d0e8b79df68dbc18dd484c97.apk";
|
||||
//"http://static.gaoshouyou.com/d/21/e8/61218d78d0e8b79df68dbc18dd484c97.apk";
|
||||
"http://ox.konsung.net:5555/ksdc-web/download/downloadFile/?fileName=ksdc_1.0.2.apk&rRange=0-";
|
||||
@Bind(R.id.progressBar) HorizontalProgressBarWithNumber mPb;
|
||||
@Bind(R.id.start) Button mStart;
|
||||
@Bind(R.id.stop) Button mStop;
|
||||
@ -200,67 +201,6 @@ public class SingleTaskActivity extends BaseActivity<ActivitySingleBinding> {
|
||||
.setDownloadPath(Environment.getExternalStorageDirectory().getPath() + "/test.apk")
|
||||
.setDownloadName("test.apk")
|
||||
.start();
|
||||
//DownloadEntity entity = new DownloadEntity();
|
||||
//entity.setDownloadUrl(DOWNLOAD_URL);
|
||||
//entity.setDownloadPath(Environment.getExternalStorageDirectory().getPath() + "/test.apk");
|
||||
//entity.setFileName("test.apk");
|
||||
//DownloadUtil util = new DownloadUtil(this, entity, new IDownloadListener() {
|
||||
// long fileSize = 1;
|
||||
// @Override public void supportBreakpoint(boolean support) {
|
||||
//
|
||||
// }
|
||||
//
|
||||
// @Override public void onCancel() {
|
||||
//
|
||||
// }
|
||||
//
|
||||
// @Override public void onFail() {
|
||||
//
|
||||
// }
|
||||
//
|
||||
// @Override public void onPre() {
|
||||
//
|
||||
// }
|
||||
//
|
||||
// @Override public void onPostPre(long fileSize) {
|
||||
// this.fileSize = fileSize;
|
||||
// }
|
||||
//
|
||||
// @Override public void onProgress(long currentLocation) {
|
||||
// long current = currentLocation;
|
||||
// long len = fileSize;
|
||||
// if (len == 0) {
|
||||
// mPb.setProgress(0);
|
||||
// } else {
|
||||
// mPb.setProgress((int) ((current * 100) / len));
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// @Override public void onChildComplete(long finishLocation) {
|
||||
//
|
||||
// }
|
||||
//
|
||||
// @Override public void onStart(long startLocation) {
|
||||
//
|
||||
// }
|
||||
//
|
||||
// @Override public void onChildResume(long resumeLocation) {
|
||||
//
|
||||
// }
|
||||
//
|
||||
// @Override public void onResume(long resumeLocation) {
|
||||
//
|
||||
// }
|
||||
//
|
||||
// @Override public void onStop(long stopLocation) {
|
||||
//
|
||||
// }
|
||||
//
|
||||
// @Override public void onComplete() {
|
||||
//
|
||||
// }
|
||||
//});
|
||||
//util.startDownload();
|
||||
}
|
||||
|
||||
private void stop() {
|
||||
|
@ -25,7 +25,7 @@
|
||||
|
||||
</string-array>
|
||||
<string-array name="download_url">
|
||||
<item>http://g37.gdl.netease.com/onmyoji_netease.apk</item>
|
||||
<item>http://g37.gdl.netease.com/onmyoji_netease_1.apk</item>
|
||||
<item>http://static.gaoshouyou.com/d/eb/f2/dfeba30541f209ab8a50d847fc1661ce.apk</item>
|
||||
<item>http://rs.0.gaoshouyou.com/d/51/46/58514d126c46b8a3f27fc8c7db3b09ec.apk</item>
|
||||
<item>http://rs.0.gaoshouyou.com/d/23/69/07238f952669727878d7a0e180534c8b.apk</item>
|
||||
|
4
gradle/wrapper/gradle-wrapper.properties
vendored
4
gradle/wrapper/gradle-wrapper.properties
vendored
@ -1,6 +1,6 @@
|
||||
#Mon Oct 24 17:59:34 CST 2016
|
||||
#Tue Mar 14 19:13:43 CST 2017
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip
|
||||
|
Reference in New Issue
Block a user