performance - 如何高效地使用 Navigator.push 内存 Flutter
问题描述
我的应用程序的屏幕是 NetworkImages 的全屏 GridView,每次单击图像时,它都会将您带到一个带有另一个 GridView 图像的新页面。我遇到了内存问题,应用程序崩溃了,因为每次我 Navigator.push 一个新页面时,前一页上的图像仍然保存在内存中,导致内存泄漏。我需要保留页面的完整历史记录,用户需要返回。有没有办法在调用 Navigator.push 时从内存中释放图像,并在发生 Navigator.pop 事件时重建它们?我尝试过使用 CachedNetworkImage 和 OptimizedCachedImage 但两者都会导致更多的内存问题。
这是显示问题的要点:https ://gist.github.com/Sofinel5/3b29e15024b902f6f04ce2f84598171c
解决方案
确保您在每个页面中都调用 dispose 函数
@override
void dispose(){
super.dispose();
}
推荐阅读
- windows - 阻止管理员获取对象的所有权
- reactjs - 在 Spring Security 中向 /oauth/token 发送请求的安全方式是什么?
- javascript - AngularJS MultiSelect在初始化时崩溃的应用程序
- python - 创建基于 Pandas.DataFrame 的类,使用 pandas.read_csv() 函数进行初始化
- git - 有没有办法检查另一个分支中存在的分支中的最后一次提交?
- c++ - 如何让 mingw64 链接到 Windows 上的 OpenAL
- javascript - @Url.Action 和 JavaScript
- javascript - 你如何在php中的输入之间切换?
- python - Python tkinter 在类或帧之间传递变量
- c# - 以编程方式获取 BIOS 引导菜单键