From f2b9d26e8a6f67b8166a29ab6d64aff3c049b1b2 Mon Sep 17 00:00:00 2001 From: juntao Date: Fri, 29 Jan 2021 12:29:22 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=B8=8B=E8=BD=BD=E5=AE=8C?= =?UTF-8?q?=E6=88=90=E7=8A=B6=E6=80=81=E9=80=9A=E7=9F=A5=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/gh/download/DownloadManager.java | 28 ++++++++++--------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/app/src/main/java/com/gh/download/DownloadManager.java b/app/src/main/java/com/gh/download/DownloadManager.java index 96d624e4d4..3a25ea45a2 100644 --- a/app/src/main/java/com/gh/download/DownloadManager.java +++ b/app/src/main/java/com/gh/download/DownloadManager.java @@ -646,20 +646,22 @@ public class DownloadManager implements DownloadStatusListener { // startDownloadService(entry, DownloadStatus.cancel); // 将原来安装完成后在 downloadService 完成的功能放到这里,尝试避免因为 ANR 造成闪退 - mDownloadDao.removeErrorMessage(entry.getUrl()); - - DownloadTask task = DataChanger.INSTANCE.getDownloadingTasks().get(entry.getUrl()); - if (task != null) { - task.cancel(); - // 改任务队列的状态 - DataChanger.INSTANCE.getDownloadingTasks().remove(entry.getUrl()); + AppExecutor.getUiExecutor().executeWithDelay(() -> { + mDownloadDao.removeErrorMessage(entry.getUrl()); + + DownloadTask task = DataChanger.INSTANCE.getDownloadingTasks().get(entry.getUrl()); + if (task != null) { + task.cancel(); + // 改任务队列的状态 + DataChanger.INSTANCE.getDownloadingTasks().remove(entry.getUrl()); + DataChanger.INSTANCE.notifyDataChanged(entry); + } + DataChanger.INSTANCE.getDownloadEntries().remove(entry.getUrl()); DataChanger.INSTANCE.notifyDataChanged(entry); - } - DataChanger.INSTANCE.getDownloadEntries().remove(entry.getUrl()); - DataChanger.INSTANCE.notifyDataChanged(entry); - DownloadStatusManager.getInstance().onTaskCancelled(entry); - - Utils.log(DownloadManager.class.getSimpleName(), "cancel"); + DownloadStatusManager.getInstance().onTaskCancelled(entry); + + Utils.log(DownloadManager.class.getSimpleName(), "cancel"); + }, 0); } }