legado_app_beta_3.26.082023
Pre-release
Pre-release
更新内容
- [修复]:进入未缓存正文快速退出导致“正在下载”数量卡死及状态泄漏的问题
-
Bug现象:
一本书全本下载后,进入未缓存章节的正文页,如果还没缓存完就快速退出了正文页,就会一直显示正在下载:3,即使整本缓存结束,还是显示3。 -
核心修复 (Coroutine.kt):
修复了在协程被动取消(如scope.cancelChildren())时,onCancel清理回调因为上次commit新增的防御机制被错误丢弃的 Bug。
原因:原代码依赖job.invokeOnCompletion触发cancel()方法,但由于此时job.isCompleted必定为 true,导致被cancel()内部的安全检查直接拦截。
解决:在invokeOnCompletion监听到被动取消(CancellationException)时,绕开cancel()方法的生命周期拦截,直接派发执行清理闭包,确保僵尸任务得到妥善处理。