Windows手机内存不足异常

时间:2013-06-16 10:36:04

标签: memory-leaks windows-phone-8 out-of-memory

我正在开发Windows Phone应用程序。在我的应用程序中使用Longlistselector并使用MVVM加载带有图像的长列表。此外,在列表后的详细信息页面中,几乎没有高分辨率图像。

在我的申请中,我会多次从第1页到第2页和第2页到第1页。 应用程序在返回导航时崩溃,导致ArgumentOutOfRangeException和OutOfMemoryException。

我已完成Windows手机应用程序分析。它显示的GC事件经常被调用。但是它没有显示应用程序崩溃的时间点以及如何减少或如何清理应用程序使用的内存。

如果有人知道内存清理以及如何防止内存泄漏,请告诉我。

2 个答案:

答案 0 :(得分:0)

内存泄漏的最大问题是事件处理程序未被释放。每当您订阅某个活动时,您还需要在不再需要更新时取消订阅该活动。当你导航回到第1页时,我猜你的第2页实际上并没有消失。 我相信有一对重载方法(OnNavigatingTo和OnNavigatingFrom,我认为)可以帮助您管理它。

另一种方法是使用WeakReference并使用EventAggregator手动传递任何数据。可能最容易使用的是MVVM Light Toolkit(Messenger)的一部分。此弱引用不会让您的事件发件人保留对您的订阅者的引用。

答案 1 :(得分:0)

你还必须记住,windows phone是一种新的范例。您不会在页面之间导航,而是导航到页面并返回上一页。如果你一直在前进,你将在导航堆栈中有新的页面实例。

相关问题