From 9fdeb528cca74b460ce8cc5b51f787b8ed07597e Mon Sep 17 00:00:00 2001 From: kangshulong <1095887643@qq.com> Date: Wed, 17 Dec 2025 20:50:14 +0800 Subject: [PATCH] =?UTF-8?q?1.ADSWindowManager=E5=8D=95=E4=BE=8B=E4=B8=AD?= =?UTF-8?q?=E9=98=B2=E6=AD=A2=E6=89=80=E6=9C=89=E8=A7=86=E9=A2=91=E5=B9=BF?= =?UTF-8?q?=E5=91=8A=E4=BD=8D=E9=83=BD=E6=97=A0=E6=B3=95=E6=92=AD=E6=94=BE?= =?UTF-8?q?=E8=BF=9B=E5=85=A5=E6=92=AD=E6=94=BE=E6=AD=BB=E5=BE=AA=E7=8E=AF?= =?UTF-8?q?=202.=E8=87=AA=E5=AE=9A=E4=B9=89=E7=BB=84=E4=BB=B6=E5=9C=A8layo?= =?UTF-8?q?ut=E7=9B=AE=E5=BD=95=E7=BC=BA=E5=A4=B1xml=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E8=BF=9B=E8=A1=8C=E8=A1=A5=E5=85=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ik/mboxlauncher/ui/ADSWindowManager.java | 13 ++++--- app/src/main/res/layout/ad_multi_layout.xml | 35 +++++++++++++++++++ .../android/download/DownLoadTaskThread.java | 1 + 3 files changed, 45 insertions(+), 4 deletions(-) create mode 100644 app/src/main/res/layout/ad_multi_layout.xml diff --git a/app/src/main/java/com/ik/mboxlauncher/ui/ADSWindowManager.java b/app/src/main/java/com/ik/mboxlauncher/ui/ADSWindowManager.java index c06d51c..0c45b7e 100644 --- a/app/src/main/java/com/ik/mboxlauncher/ui/ADSWindowManager.java +++ b/app/src/main/java/com/ik/mboxlauncher/ui/ADSWindowManager.java @@ -36,8 +36,8 @@ public class ADSWindowManager implements HomeMultiView.MultiViewListener{ /**是否开启播放模式*/ private boolean isPlayMode=false; - - + //防止所有视频广告位都无法播放 进入startVideo()死循环 + private boolean hasOncePlayOk; private ADSWindowManager(Context context){ this.mContext =context; mHandler=new MyHandler(Looper.getMainLooper()); @@ -66,7 +66,7 @@ public class ADSWindowManager implements HomeMultiView.MultiViewListener{ for (MultiView multiView:mMultiViewList){ multiView.setMultiViewListener(this); } - + if(hasOncePlayOk) hasOncePlayOk=false; } public void startVideo(){ isPlayMode =true; @@ -121,19 +121,24 @@ public class ADSWindowManager implements HomeMultiView.MultiViewListener{ if(multiView instanceof AdMultiView){ LogUtils.loge(" ad playing id:" + adInfo.getId()); multiView.onVideoRestart(adInfo.getLocalFilePath()); + hasOncePlayOk=true; return; } File file = new File(adInfo.getLocalFilePath()); if (file.isFile() && file.exists()) { LogUtils.loge(" ad playing id:" + adInfo.getId()); multiView.onVideoRestart(adInfo.getLocalFilePath()); + hasOncePlayOk=true; return; } } }catch (Exception e){ e.printStackTrace(); LogUtils.loge("error file is not exists:"+adInfo.getLocalFilePath()); - + if(mMultiViewList.size()-1==currentADIndex&&!hasOncePlayOk){ + hasOncePlayOk=false; + return; + } } currentADIndex++; if (currentADIndex >= mMultiViewList.size()) { //所有文件都不存在,跳出循环,都不播放 diff --git a/app/src/main/res/layout/ad_multi_layout.xml b/app/src/main/res/layout/ad_multi_layout.xml new file mode 100644 index 0000000..dd02c99 --- /dev/null +++ b/app/src/main/res/layout/ad_multi_layout.xml @@ -0,0 +1,35 @@ + + + + + + + + + diff --git a/mylibrary/src/main/java/com/android/download/DownLoadTaskThread.java b/mylibrary/src/main/java/com/android/download/DownLoadTaskThread.java index 6b57ec5..c5338bf 100644 --- a/mylibrary/src/main/java/com/android/download/DownLoadTaskThread.java +++ b/mylibrary/src/main/java/com/android/download/DownLoadTaskThread.java @@ -129,6 +129,7 @@ public class DownLoadTaskThread implements Runnable { } catch (Exception e) { e.printStackTrace(); LogUtils.loge("download Exception===>"+e.getMessage()); + // TODO: 2025/12/17 异常检验-tmp是否存在,不存在再建一个0KB临时空文件可保证 文件以后一定能下载下来 if (observer != null) { observer.onError(bean, bean.getTaskId(), e.getMessage()); }