为什么OnLaunched检查if(rootFrame.Content == null)?

时间:2015-11-12 18:42:28

标签: c# .net windows-runtime windows-store-apps win-universal-app

OnLaunched类的App方法中,有以下内容:

if (rootFrame.Content == null)
{
    rootFrame.Navigate(typeof(MainPage), e.Arguments);
}

为什么检查Contentnull?显然 ,因为OnLaunched方法是

  

“最终用户正常启动应用程序时调用。   将使用其他入口点,例如应用程序时   启动以打开特定文件。“(摘自其摘要。)

对空检查的注释中给出的原因是:

  

“未恢复导航堆栈时导航到第一个   页,...“

但它永远不会像上面那样“恢复”。这在Resuming事件处理程序中是有意义的,而不是在这里。

1 个答案:

答案 0 :(得分:2)

每当用户通过“开始”菜单,磁贴或任何其他通常启动应用的操作打开应用时,即使应用已在运行或之前已暂停而非终止,

OnLaunched也会被调用

请注意,在WinRT 8.1模板中,状态将在此检查之前显示的if (rootFrame == null)检查中恢复,OnLaunched处理程序中