在Windows手机运行时页面之间导航

时间:2014-11-19 14:26:49

标签: memory-leaks windows-runtime windows-phone-8.1

假设我有两页Page1和Page2。 当我启动应用程序时,第1页正在加载,然后我可以选择转到第2页。然后我可以回到Page1。 问题是,如果我多次执行Page1-> Page2-> Page1,每次我在其上导航时都会调用Page2的构造函数(我猜这对于Page1来说是相同的),并且使用了越来越多的内存。 此外,如果应用程序暂停并恢复,则恢复方法被调用为Page2实例化的n倍。

有没有办法避免这种情况?

1 个答案:

答案 0 :(得分:0)

使用Page.NavigationCacheMode

  

默认情况下,每个导航都会创建特定的新实例   请求页面子类,并处理上一页面实例。这个   甚至在导航回到之前访问过的页面时或何时发生   新页面类型与上一页面类型相同。应用程序   涉及频繁导航到相同的页面可以缓存和重用   页面实例使导航更有效率。为此,请设置   CacheSize属性指定要缓存的页数。对于每个页面   要缓存的类型,还必须设置   Page.NavigationCacheMode属性为Enabled或Required。网页   无论CacheSize如何,都会缓存所需的缓存模式   值,并且不计入CacheSize总数。

参考Frame