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); } }