Windows Phone 7.5 (Mango):: 在使用硬件键从一页导航回上一页时,假设从 Page2 到 Page1,Page2 的析构函数没有触发。所有遍历页面的析构函数在退出应用程序时触发。任何人,请帮我解决这个问题?
问问题
471 次
4 回答
0
您可以在您的站点上捕获 OnBackKey 事件以检查其是否导航回来。那么你应该拥有与你想要的析构函数相同的功能
于 2012-05-15T10:47:27.273 回答
0
如果您的问题是垃圾收集器没有收集该页面,那更有可能是因为您没有取消订阅 on Navigationed from 事件中的每个事件。
于 2012-05-15T13:06:54.880 回答
0
如果 destructopr 真的 NEVER (*) 被触发,那是因为某些东西持有对它的引用。就像伊戈尔说的,这可能是一个事件。
或者您覆盖 OnBackKeyPress,而不是返回,而是向前导航到 Page1。在这种情况下,backstack 将保留对 Page2 的引用。
(*) 请注意,在 GarbageCollector 运行之前不会调用析构函数。即使您的代码是完美的,您也可能需要几个 Page1->Page2 导航来实现它。
于 2012-05-15T13:57:37.603 回答
0
检查您是否没有任何具有静态字段的类实例。你最好的朋友是调试器。将此代码放在 backKeyPress 事件之上
if (Debugger.IsAttached)
{
Debugger.Break();
}
然后将 watch 添加到任何可以阻止调用析构函数的变量中。
于 2014-01-29T17:27:31.143 回答