我有测试应用程序:
http://www.mediafire.com/download/y5nxo6esifys4h0/LeakMemLLS.rar
它由2页组成:
主页。
ListItems页面(使用LongListSelector)。
当我多次访问ListItems页面并返回主页面时。记忆力在增加。
有人知道这是什么问题吗?
感谢。
答案 0 :(得分:0)
当您从PhoneApplicationPage
导航回来,然后再返回到它时,运行时会创建一个新实例。因此,你看到这个记忆增加。通常它没关系,因为垃圾收集器会在必要时回收未使用的实例。
答案 1 :(得分:0)
每次到达任何页面的onNavigateTo()
时,您都必须清除堆栈,所有页面都保持堆叠状态,GC.Colect()
无法删除堆栈。
int a = NavigationService.BackStack.Count();
while (a > standerdCount)
{
this.NavigationService.RemoveBackEntry();
a = NavigationService.BackStack.Count();
}
当应用程序第一次到达页面时,standerdCount 是堆栈计数。
或者,当您从ListItem页面导航到MainPage时,可以使用NavigationService.GoBack()
。