如何在Flutter中高效使用Navigator.push进行内存管理

3
我的应用程序有全屏网格视图的网络图像屏幕,每次单击图像都会带您到另一个图像网格的新页面。我遇到了内存问题,因为每次Navigator.push新页面时,前一页上的图像仍然保留在内存中,导致内存泄漏。我需要保留完整的页面历史记录,并且用户需要返回。是否有一种方法可以在调用Navigator.push时释放图像的内存,并在Navigator.pop事件发生时重新构建它们?我尝试过使用CachedNetworkImage和OptimizedCachedImage,但两者都会导致更多的内存问题。
这里是显示问题的gist:https://gist.github.com/Sofianel5/3b29e15024b902f6f04ce2f84598171c

你解决了这个问题吗? - Tom Nijs
为什么不尝试使用pushReplacement而不是push呢? - Jaechul
1个回答

0

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

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

这对帮助没有任何作用。Dispose会自动调用。 - Sofiane Larbi
你加了这些行到类里面了吗? - s.am.i
不,dispose方法是在对象从树中永久删除时调用的,这不是我在问题中解释的情况。无论如何,你的代码什么也没做,因为它只是一个空白覆盖。 - Sofiane Larbi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接