首页 > 解决方案 > 如何高效地使用 Navigator.push 内存 Flutter

问题描述

我的应用程序的屏幕是 NetworkImages 的全屏 GridView,每次单击图像时,它都会将您带到一个带有另一个 GridView 图像的新页面。我遇到了内存问题,应用程序崩溃了,因为每次我 Navigator.push 一个新页面时,前一页上的图像仍然保存在内存中,导致内存泄漏。我需要保留页面的完整历史记录,用户需要返回。有没有办法在调用 Navigator.push 时从内存中释放图像,并在发生 Navigator.pop 事件时重建它们?我尝试过使用 CachedNetworkImage 和 OptimizedCachedImage 但两者都会导致更多的内存问题。

这是显示问题的要点:https ://gist.github.com/Sofinel5/3b29e15024b902f6f04ce2f84598171c

标签: performancefluttermemorymemory-managementmemory-leaks

解决方案


确保您在每个页面中都调用 dispose 函数

  @override
  void dispose(){
   super.dispose();
  }

推荐阅读