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



我正在从firebase下载一个图像到我的本地存储。

final StorageReference imageRef = FirebaseStorage.instance
.ref()
.child(widget.musicPackData.imageFirebasePath);
await imageRef.writeToFile(File(localPathImage)).future;

代码运行良好,正如任何人所期望的那样。问题是,如果用户在下载过程中通过滑动从概览窗口关闭我的应用程序,下载就会中断,基本上就会停止。如果在应用程序被终止之前下载尚未完成,则会在本地存储中留下一个未完成的损坏文件。由于我只想获得一次这个文件并将其存储在本地存储中,我无法判断这个文件是否已完全下载。我尝试在AppLifecycleState.detached回调中删除该文件,但它似乎已损坏,因此这不是一个解决方案。请参阅此处了解有关AppLifecycleNtate.detacched的更多信息。

当一个应用程序从概览窗口中被杀死时,我有什么方法可以清理这个文件吗?

您通常希望最初将文件写入临时文件名,然后在下载完成后才将其重命名为最终名称。例如,Chrome也是这样做的,这就是为什么你可能会发现.crdownload文件用于中止下载。

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

最新更新