Windows phone 8: c#系统内存不足异常:从web加载大量图像

本文关键字:加载 web 图像 内存不足 phone 系统 Windows 异常 | 更新日期: 2023-09-27 18:07:20

这是我在Windows Phone环境下开发的第一个应用程序之一,所以我基本上是边做边学。我有一个具有枢轴控件的应用程序,三个枢轴项中的每一个都有一个LongListSelector。当你从网络上滚动图像时,它会加载到longlistselector中,这是无限滚动(因为它在底部看到你的图像时只会加载更多)。然而,在测试中,如果我疯狂滚动以便下载大量图像,我会得到以下错误:

'System.OutOfMemoryException' occurred in System.Windows.ni.dll

因为我每次都加载一些相同的图像,所以我实现了PersistentImageCache (Kawagoe.Storage)来缓存图像。

http://kawagoe.codeplex.com/wikipage?title=Storage.PersistentImageCache

我是否必须在用户向下滚动时卸载图像,并在用户向上滚动时重新加载它们?或者为每X个图像清除内存?(我用的是HTC 8S,所以对于内存更大的手机来说,这可能不是问题。)

Windows phone 8: c#系统内存不足异常:从web加载大量图像

由于您是为wp8开发的,因此请考虑使用网格布局作为longlistselector,如下面的示例所示:

http://code.msdn.microsoft.com/wpapps/PhotoHub-Windows-Phone-8-fd7a1093

他们做了许多先进的内存节省技术,如分页3页内容,在项目实现方法上延迟加载内容和位图缓存。

我没有显示100个hubtiles(臭名昭著的内存chompers)的问题

奖金提示:您可以通过设置较低的maximumflickvelocity来控制滚动速度,这可以让您有更多的时间来做您需要做的事情。