我遇到了一个问题,我的应用程序有时会激活,有时会在我通过以下方式打开时启动:
var options = new Windows.System.LauncherOptions();
options.DisplayApplicationPicker = false;
bool success = await Windows.System.Launcher.LaunchFileAsync(sampleFile, options);
当应用程序重新激活时,它会显示相同的窗口 - 当我使用LaunchFileAsync访问外部应用程序时 - 这很不错。
但有时应用程序启动,我看到一个SplashPage和应用程序从MainPage开始。 - 我怎样才能使它返回页面,我在使用LaunchFileAsync时离开了?
示例:
我有一个MainPage和一个BlankPage1
所以这是我的暂停+关闭(终止)8个按钮的页面:
在应用程序被系统杀死时,在恢复0按钮上,我想保存我的视图XAML代码:
答案 0 :(得分:3)
完全取决于应用程序关闭的条件。它是由OS自动暂停和终止的吗?或者你自己关闭它? (例如:ALT-F4)
您可以在此处看到应用程序生命周期:http://msdn.microsoft.com/en-us/library/windows/apps/hh464925.aspx
如果您希望应用程序在用户关闭时恢复其先前的状态,我认为您可以在App.xaml.cs中的OnLaunched方法上启用它:
if (args.PreviousExecutionState == ApplicationExecutionState.Terminated
|| args.PreviousExecutionState == ApplicationExecutionState.ClosedByUser)
{
try
{
await SuspensionManager.RestoreAsync();
}
catch (SuspensionManagerException)
{
}
}
然后,如果您的Page扩展了LayoutAwarePage,则有两个方法,SaveState和LoadState。 从框架导航或向框架导航时会自动调用这些方法(包括暂停/恢复/打开...)。
如果在SaveState方法中将数据保存在按钮后面,可以在LoadState方法中恢复它(从而重绘按钮)。这里有一个详细的例子:http://msdn.microsoft.com/en-us/library/windows/apps/hh986968.aspx