1.AppManager和SplashView处理图片断电重启无论多少次图片不显示而其原因为文件变回-tmp情况,广告位5s后刷新

2.DownLoadManeger 处理下载apk安装未完成重启无论多少次不安装情况
3.重命名系统概率不成功把重命名和删除文件操作分开间隔5s
This commit is contained in:
2025-11-08 09:03:38 +08:00
parent 578f5739bf
commit 646719c3fb
7 changed files with 43 additions and 11 deletions

View File

@@ -9,6 +9,7 @@ import com.android.util.GsonUtil;
import com.android.util.LogUtils;
import java.io.File;
import java.io.IOException;
import java.util.List;
public class DownLoadManeger {
@@ -132,10 +133,17 @@ public class DownLoadManeger {
for (DownLoadTaskBean downLoadTaskBean:list) {
if(!TextUtils.isEmpty(downLoadTaskBean.getUrl())&&!TextUtils.isEmpty(downLoadTaskBean.getFileName())&&!TextUtils.isEmpty(downLoadTaskBean.getPath())){
File file = new File(downLoadTaskBean.getPath()+downLoadTaskBean.getFileName()+"-tmp");
if(file.exists()&&downLoadTaskBean.getCurrentProgress()==file.length()&&file.length()<=downLoadTaskBean.getTotal()){
if(file.exists()&&downLoadTaskBean.getCurrentProgress()==file.length()&&file.length()<=downLoadTaskBean.getTotal()){
TaskQueue.getInstance().remove(downLoadTaskBean);
TaskQueue.getInstance().add(new DownLoadTaskThread(downLoadTaskBean, observer));
}else if(downLoadTaskBean.getTaskType()==1){//apk 下载完成未安装断电重新启动下载任务 因为需要安装apk
File apkFile = new File(downLoadTaskBean.getPath()+downLoadTaskBean.getFileName());
if(apkFile.exists()&&apkFile.length()==downLoadTaskBean.getTotal()&&downLoadTaskBean.getCurrentProgress()<downLoadTaskBean.getTotal()){
TaskQueue.getInstance().remove(downLoadTaskBean);
TaskQueue.getInstance().add(new DownLoadTaskThread(downLoadTaskBean, observer));
}
}
}
}
}
@@ -148,6 +156,13 @@ public class DownLoadManeger {
if(file.exists()&&file.length()>0&&file.length()<=downLoadTaskBean.getTotal()){
downLoadTaskBean.setCurrentProgress(file.length());
DaoManager.getInstance().update(DownLoadTaskBean.class,downLoadTaskBean);
}else if(!file.exists()){
try {
boolean createFileSuccess=file.createNewFile();
LogUtils.loge("下载任务但文件丢失创建文件="+createFileSuccess);
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}else if(downLoadTaskBean.getCurrentProgress()!=0&&!TextUtils.isEmpty(downLoadTaskBean.getUrl())&&!TextUtils.isEmpty(downLoadTaskBean.getFileName())&&!TextUtils.isEmpty(downLoadTaskBean.getPath())){
File file = new File(downLoadTaskBean.getPath()+downLoadTaskBean.getFileName()+"-tmp");

View File

@@ -49,6 +49,7 @@ public class DownLoadTaskThread implements Runnable {
File dataFile = new File(bean.getPath(), bean.getFileName());
if(dataFile.exists()&&dataFile.length()==bean.getTotal()){ //判断该文件已下载无需再下载
LogUtils.loge("dont need download "+bean.getFileName());
observer.onFinish(bean, bean.getTaskId(), dataFile.length());
return;
}
@@ -63,8 +64,8 @@ public class DownLoadTaskThread implements Runnable {
if(currentTotal==bean.getTotal()){
File targFile = new File(bean.getPath(), bean.getFileName());
file.renameTo(targFile);//重命名
file.delete();//删除临时文件
Thread.sleep(5000);
file.delete();//删除临时文件
observer.onFinish(bean, bean.getTaskId(), currentTotal);
return;
}
@@ -114,8 +115,8 @@ public class DownLoadTaskThread implements Runnable {
LogUtils.loge("download Exception===>sleeping before");
File targFile = new File(bean.getPath(), bean.getFileName());
file.renameTo(targFile);//重命名
file.delete();//删除临时文件
Thread.sleep(5000);
file.delete();//删除临时文件
LogUtils.loge("download Exception===>sleeping after");
observer.onFinish(bean, bean.getTaskId(), currentTotal);
}else {