diff --git a/gradle.properties b/gradle.properties index 50b9111..1dd6684 100644 --- a/gradle.properties +++ b/gradle.properties @@ -58,7 +58,7 @@ MOGO_TELEMATIC_VERSION=1.4.7.59 # v2x MOGO_V2X_VERSION=1.4.7.59 # SKIN -MOGO_SKIN_VERSION=1.4.7.49.19 +MOGO_SKIN_VERSION=1.4.7.50 # SDK SDK_VERSION=1.4.7.49.18-debug SDK_NATIVE_VERSION=1.4.7.49.18-debug diff --git a/libraries/mogo-skin/src/main/java/com/mogo/skin/SkinManager.java b/libraries/mogo-skin/src/main/java/com/mogo/skin/SkinManager.java index 9569cb1..4bc5284 100644 --- a/libraries/mogo-skin/src/main/java/com/mogo/skin/SkinManager.java +++ b/libraries/mogo-skin/src/main/java/com/mogo/skin/SkinManager.java @@ -31,6 +31,11 @@ public class SkinManager extends Observable { private static Application mApplication; private static SkinManager instance; + /** + * 下载器 + */ + private static DownloadManager mDownloadManager; + /** * 皮肤加载回调监听 */ @@ -159,7 +164,7 @@ public class SkinManager extends Observable { // 获取皮肤插件文件对象 File skinFile = skin.getSkinFile(theme); // 判断是否存在 - if (FileUtils.fileIsExists(theme, skin.getSkinFileName())) { + if (FileUtils.fileIsExists(theme, skin.getSkinFileName()) && mDownloadManager == null) { // 检验皮肤包完整性,即MD5是否一致,不一致则删除 String localSkinFileMd5 = SkinUtils.getSkinMD5(skinFile); if (!TextUtils.equals(localSkinFileMd5, skin.md5)) { @@ -172,10 +177,13 @@ public class SkinManager extends Observable { } } Log.w(TAG, "皮肤不存在,开始下载……skin=" + skin); - DownloadManager manager = getDownloadManager(skin, theme, skinLoadListener); - // 启动文件下载 - manager.startDownload(); - + if (mDownloadManager == null) { + mDownloadManager = getDownloadManager(skin, theme, skinLoadListener); + // 启动文件下载 + mDownloadManager.startDownload(); + } else { + Log.e(TAG, "当前有皮肤包下载任务进行中,不可重复提交!"); + } } private static DownloadManager getDownloadManager(Skin skin, File themeDirectory, SkinLoadListener skinLoadListener) { @@ -217,6 +225,7 @@ public class SkinManager extends Observable { skinLoadListener.onLoadFailed(e); e.printStackTrace(); } + mDownloadManager = null; } @Override @@ -224,6 +233,7 @@ public class SkinManager extends Observable { // 下载失败后的处理 Log.e(TAG, "皮肤包下载出错 onDownloadFailed"); skinLoadListener.onLoadFailed(e); + mDownloadManager = null; e.printStackTrace(); } @@ -231,6 +241,7 @@ public class SkinManager extends Observable { public void onAlreadyDownloading(String url) { // 处理重复下载的情况 Log.w(TAG, "皮肤包 onAlreadyDownloading url=" + url); + mDownloadManager = null; skinLoadListener.onLoadFailed(new Exception("DownloadManager onAlreadyDownloading url=" + url)); } };