在Windows 8.1通用应用程序中,使用APP模板中包含的vector
ans NavigationHelper.cs
类处理暂停/恢复模式。 Windows 10 UWP应用程序中似乎没有这些类。有没有办法处理暂停/恢复状态?
答案 0 :(得分:4)
社区正在开发一个有趣的框架(但我认为Jerry Nixon, Andy Wigley等),名为Template10。 Template10有一个Bootstrapper类,可以覆盖OnSuspending
和OnResuming
个虚拟方法。我不确定是否有使用Template10进行暂停/恢复的确切示例,但想法似乎是使App.xaml.cs inherit from this Bootstrapper类,以便您可以轻松覆盖我提到的方法。
sealed partial class App : Common.BootStrapper
{
public App()
{
InitializeComponent();
this.SplashFactory = (e) => null;
}
public override Task OnStartAsync(StartKind startKind, IActivatedEventArgs args)
{
// start the user experience
NavigationService.Navigate(typeof(Views.MainPage), "123");
return Task.FromResult<object>(null);
}
public override Task OnSuspendingAsync(object s, SuspendingEventArgs e)
{
// handle suspending
}
public override void OnResuming(object s, object e)
{
// handle resuming
}
}
答案 1 :(得分:2)
以上解决方案仅适用于安装Template10的用户。 通用解决方案是,
将这些行粘贴到App.xaml.cs
的构造函数中 this.LeavingBackground += App_LeavingBackground;
this.Resuming += App_Resuming;
看起来像这样
public App()
{
this.InitializeComponent();
this.Suspending += OnSuspending;
this.LeavingBackground += App_LeavingBackground;
this.Resuming += App_Resuming;
}
这些是方法,虽然你可以按TAB,它们会自动生成。
private void App_LeavingBackground(object sender, LeavingBackgroundEventArgs e)
{
}
private void App_Resuming(object sender, object e)
{
}
方法LeavingBackground和这里未提及的方法EnteredBackground被新添加到uwp。
在这些方法之前,我们将使用恢复和暂停来保存和恢复ui,但现在推荐的工作位置就在这里。这些是在应用程序恢复之前执行工作的最后位置。所以关于这些方法的工作应该是小的ui或者其他的东西,比如重新构造值这些陈旧的,因为长期持有的方法会在恢复时影响应用启动时间。
来源 Windows dev material, Windoes dev material 2
谢谢,祝你有个美好的一天。