Windows Phone 7.1(Mango)::页面析构函数未触发

时间:2012-05-15 10:02:44

标签: windows-phone-7

Windows Phone 7.5(Mango)::使用硬件键从页面导航回到上一页时,假设从Page2到Page1,Page2的析构函数未触发。所有遍历页面的析构函数在退出应用程序时触发。请帮帮我吧?

4 个答案:

答案 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添加到任何可以阻止析构函数调用的变量。