我正在为 WP7 开发一个应用程序(用于 Windows Phone RTM 和 WP Emulator 的 VS2010 Express),但现在我面临一个与内存使用相关的大问题。该应用程序本身有大约 12 个视图,其中一些被不同的数据重用。它是一个新闻阅读器,所以视图主要是列表框(图像缩略图、堆栈面板和文本块)。
第一个视图有一个包含 30 个项目的列表框。这需要大约 20MB 的 RAM,但是当我在视图之间导航时,当前和峰值 RAM 使用量开始上升。好吧,峰值使用量约为 55MB,我认为还可以,但该应用程序有一个画廊部分,在选择缩略图后,它会导航到另一个视图,该视图显示下载的图像(JPEG,1131px × 1647px,~486KB),但最初适合屏幕。直到这里一切都很好,但出于缩放目的,我使用的是Laurent Bugnion 的多点触控行为,问题是当我放大图像时,内存使用量接近 90MB(就像我上次测试最大比例大小为 2.5 时的 87MB) .
此外,在我浏览视图后,当前的 ram 使用量可能会永久达到并保持在 35MB,我相信这是由于设备缓存了一些东西。
那么,正如标题所说,我怎样才能避免使用如此巨大的内存呢?
编辑----
另外我想问一下,在我的应用程序中,是否可以从任何视图导航到几乎所有视图,并且在两者之间总是有一个页面转换动画(比如电话列表应用程序模板中的那个) beta 工具),可能会导致内存使用过多。