|
@@ -37,11 +37,25 @@ public class DownloadUtil2 {
|
|
* @param url 下载连接
|
|
* @param url 下载连接
|
|
* @param listener 下载监听
|
|
* @param listener 下载监听
|
|
*/
|
|
*/
|
|
- public void download(final String url,final String dir, final String name, final OnDownloadListener listener) {
|
|
|
|
|
|
+ public void download(final String url,final String dir, final String name, boolean redownload, final OnDownloadListener listener) {
|
|
|
|
+ if (!redownload) {
|
|
|
|
+ File file = new File(dir + "/" + name);
|
|
|
|
+ if (file.exists()) {
|
|
|
|
+ LogUtil.d(TAG, "file exist==" + file.getPath());
|
|
|
|
+ if (listener != null) {
|
|
|
|
+ listener.onDownloadSuccess(); // 下载完成
|
|
|
|
+ }
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
final String fileDir = isHaveExistDir(new File(dir), new File(dir + "/" + name));
|
|
final String fileDir = isHaveExistDir(new File(dir), new File(dir + "/" + name));
|
|
LogUtil.d(TAG, "url==" + url + ", fileDir==" + fileDir);
|
|
LogUtil.d(TAG, "url==" + url + ", fileDir==" + fileDir);
|
|
if (fileDir == null) {
|
|
if (fileDir == null) {
|
|
ToastUtil.showToast("下载文件路径创建失败");
|
|
ToastUtil.showToast("下载文件路径创建失败");
|
|
|
|
+ if (listener != null) {
|
|
|
|
+ listener.onDownloadFailed(); // 下载失败
|
|
|
|
+ }
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
Request request = new Request.Builder().url(url).build();
|
|
Request request = new Request.Builder().url(url).build();
|
|
@@ -49,7 +63,9 @@ public class DownloadUtil2 {
|
|
@Override
|
|
@Override
|
|
public void onFailure(Call call, IOException e) {
|
|
public void onFailure(Call call, IOException e) {
|
|
LogUtil.d(TAG, "onFailure==" + e.toString());
|
|
LogUtil.d(TAG, "onFailure==" + e.toString());
|
|
- listener.onDownloadFailed(); // 下载失败
|
|
|
|
|
|
+ if (listener != null) {
|
|
|
|
+ listener.onDownloadFailed(); // 下载失败
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
@@ -72,13 +88,19 @@ public class DownloadUtil2 {
|
|
float sp = (float) sum / (float) total;
|
|
float sp = (float) sum / (float) total;
|
|
int progress = (int) (sp * 100);
|
|
int progress = (int) (sp * 100);
|
|
//LogUtil.d(TAG, "progress==" + progress);
|
|
//LogUtil.d(TAG, "progress==" + progress);
|
|
- listener.onDownloading(progress);// 下载中
|
|
|
|
|
|
+ if (listener != null) {
|
|
|
|
+ listener.onDownloading(progress);// 下载中
|
|
|
|
+ }
|
|
}
|
|
}
|
|
fos.flush();
|
|
fos.flush();
|
|
- listener.onDownloadSuccess(); // 下载完成
|
|
|
|
|
|
+ if (listener != null) {
|
|
|
|
+ listener.onDownloadSuccess(); // 下载完成
|
|
|
|
+ }
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
LogUtil.d(TAG, "Exception==");
|
|
LogUtil.d(TAG, "Exception==");
|
|
- listener.onDownloadFailed();
|
|
|
|
|
|
+ if (listener != null) {
|
|
|
|
+ listener.onDownloadFailed();
|
|
|
|
+ }
|
|
} finally {
|
|
} finally {
|
|
try {
|
|
try {
|
|
if (is != null)
|
|
if (is != null)
|