【问题标题】:Flutter multiple image provider invoke is increase the memory usage and leads to crashFlutter 多个图像提供程序调用会增加内存使用量并导致崩溃
【发布时间】:2020-06-18 19:48:47
【问题描述】:

这里是Flutter应用的情况,

我有 100 张全高清分辨率的图像,并在 Flutter 应用程序中的每次滑动(左或右)上显示这些图像。

显示 10 到 15 张图片后,应用突然断开连接,有时甚至崩溃。此图像是在“Image Provider”类的帮助下加载的。

 imageLocal = Image.file(File(com.getImagePath(entity))).image;
 imageLocal.resolve(ImageConfiguration()).addListener(
          new ImageStreamListener((imageInfo, synchronousCall) {}));

Dart 开发工具显示每次图像加载 (PFA) 时内存都会增加。在应用关闭之前,这些缓存的图像不会清除。

Dart Devtools screenshot

我也试图清除缓存。但它不起作用。

 PaintingBinding.instance.imageCache.clear();

颤振细节:

[√] Flutter (Channel stable, v1.17.3, on Microsoft Windows [Version 10.0.18363.836], locale en-IN)

[√] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
[√] Android Studio (version 4.0)
[√] VS Code (version 1.46.0)
[√] Connected device (1 available)

• No issues found!

就以下问题寻求您的建议或帮助,

  1. 需要显示更多图像(也包括大尺寸图像)和更长的浏览时间而不会出现任何缓慢和崩溃?
  2. 如何处理这种外部内存增长? (可能这会导致应用崩溃和运行缓慢)
  3. 如何以更快的加载时间快速处理 8K 图像?

非常感谢您的帮助!!

【问题讨论】:

  • 你有没有找到任何关于它的 est 解决方案? @pradeep

标签: flutter flutter-layout


【解决方案1】:

使用cached_network_image 库作为图像提供者与extended_imagephoto_view 一起显示这些图像

【讨论】:

  • 感谢您的建议。我理解为网络图像的 cached_network_image 库。这里的问题是本地图像加载会不断增加 RAM 内存。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-27
  • 1970-01-01
  • 1970-01-01
  • 2015-08-13
  • 2011-07-08
相关资源
最近更新 更多