diff --git a/library/src/main/ets/ImageKnifeDispatcher.ets b/library/src/main/ets/ImageKnifeDispatcher.ets index 2befcab..a2428fb 100644 --- a/library/src/main/ets/ImageKnifeDispatcher.ets +++ b/library/src/main/ets/ImageKnifeDispatcher.ets @@ -201,9 +201,15 @@ export class ImageKnifeDispatcher { } dispatchNextJob() { - let request = this.jobQueue.pop() - if (request !== undefined) { - this.executeJob(request) + while (true) { + let request = this.jobQueue.pop() + if (request === undefined){ + break// 队列已无任务 + } + else if (request.requestState === ImageKnifeRequestState.PROGRESS) { + this.executeJob(request) + break + } } } diff --git a/library/src/main/ets/utils/FileCache.ets b/library/src/main/ets/utils/FileCache.ets index 195a0ad..b55b334 100644 --- a/library/src/main/ets/utils/FileCache.ets +++ b/library/src/main/ets/utils/FileCache.ets @@ -204,10 +204,10 @@ export class FileCache { break } let delkey = this.lruCache.keys()[0] - let data: ArrayBuffer | undefined = FileUtils.getInstance().readFileSync(this.path + delkey) - if (data !== undefined) { + let remove: number | undefined = this.lruCache.remove(this.lruCache.keys()[0]) + if (remove !== undefined) { FileUtils.getInstance().deleteFile(this.path + delkey) - this.removeMemorySize(data) + this.removeMemorySize(remove) } this.lruCache.remove(delkey) }