当用户从概览窗口滑动关闭应用程序时,Firebase处理未完成的下载

当用户从概览窗口滑动关闭应用程序时,Firebase处理未完成的下载,firebase,flutter,firebase-storage,Firebase,Flutter,Firebase Storage,我正在将图像从firebase下载到本地存储 final StorageReference imageRef = FirebaseStorage.instance .ref() .child(widget.musicPackData.imageFirebasePath); await imageRef.writeToFile(File(localPathImage)).future; 这段代码工作得很好,正如任何人所期望的那样。问题是,如果用户在下载仍

我正在将图像从firebase下载到本地存储

final StorageReference imageRef = FirebaseStorage.instance
          .ref()
          .child(widget.musicPackData.imageFirebasePath);

await imageRef.writeToFile(File(localPathImage)).future;
这段代码工作得很好,正如任何人所期望的那样。问题是,如果用户在下载仍在进行的情况下通过在概览窗口中滑动来关闭我的应用程序,则下载会中断,并且基本停止。如果在应用程序被终止之前下载尚未完成,则会在本地存储中留下一个未完成的损坏文件。由于我只想获取此文件一次并将其存储在本地存储中,因此无法判断此文件是否已完全下载。我尝试删除AppLifecycleState.detached回调中的文件,但它似乎已损坏,因此这不是解决方案


当应用程序从“概述”窗口中被终止时,我有没有办法清理此文件?

通常,您会希望先将文件写入临时文件名,然后在下载完成后才将其重命名为最终名称。例如,Chrome也会这样做,这就是为什么您可以找到
.crdownload
文件来中止下载


下次启动应用程序时,您可以通过搜索被放弃的部分文件来清理文件。

非常有用和聪明。