From b85a55e52224dc1c010945becbe66e9a3b06e756 Mon Sep 17 00:00:00 2001 From: donghongyu-pc Date: Tue, 24 Dec 2024 18:50:48 +0800 Subject: [PATCH] =?UTF-8?q?[Fix=20Skin]=201=E3=80=81=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E7=9A=AE=E8=82=A4=E5=8C=85=E5=A4=9A=E6=AC=A1=E4=B8=8B=E8=BD=BD?= =?UTF-8?q?=E5=90=8C=E4=B8=80=E4=B8=AA=E7=9A=AE=E8=82=A4=E5=AF=BC=E8=87=B4?= =?UTF-8?q?md5=E4=B8=8D=E4=B8=80=E6=A0=B7=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gradle.properties | 2 +- .../main/java/com/mogo/skin/SkinManager.java | 21 ++++++++++++++----- 2 files changed, 17 insertions(+), 6 deletions(-) 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)); } };