Windows Phone 7.5(Mango)::使用硬件键从页面导航回到上一页时,假设从Page2到Page1,Page2的析构函数未触发。所有遍历页面的析构函数在退出应用程序时触发。请帮帮我吧?
答案 0 :(得分:0)
您可以在您的网站上捕获OnBackKey事件,以检查它是否已导航回来。然后,您应该具有与所需的析构函数相同的功能
答案 1 :(得分:0)
如果您的问题是垃圾收集器没有收集该页面,那么更有可能是因为您没有取消订阅on on navigated from event上的每个事件。
答案 2 :(得分:0)
如果destructopr真的没有被(*)触发,那么这是因为某些东西持有对它的引用。就像伊戈尔所说,这可能是一件大事。
或者您覆盖OnBackKeyPress而不是返回,您向前导航到Page1。在这种情况下,backstack会保留对Page2的引用。
(*)请注意,在GarbageCollector运行之前不会调用析构函数。即使您的代码是完美的,您也可能需要一些Page1-> Page2导航才能实现。
答案 3 :(得分:0)
检查您是否没有包含静态字段的类实例。 你最好的朋友是调试器。 将此代码放在backKeyPress事件
之上if (Debugger.IsAttached)
{
Debugger.Break();
}
然后将watch添加到任何可以阻止析构函数调用的变量。