0

我正在将应用程序从 iOS 移植到 WinRT/8 Metro/8 Immersive/无论当前名称是什么。

在 iOS 上,我们可以设置Application does not run in backgroundYES让应用在用户离开应用时实际退出。

我想弄清楚如何在 WinRT 中复制这种行为。

  1. 是的,我了解这是异常行为。
  2. 是的,我已经考虑过了。
  3. 是的,我这样做有一个非常好的理由。

我假设在userLeavingApp活动期间,我只会打电话Application.Current.Exit(),但我似乎无法找到该userLeavingApp活动。我曾考虑OnSuspending在 App.xaml.vb 中使用 (Handles Me.Suspending),但这对我来说似乎调用得不够快。

是否有 .NET 等价物viewWillDisappear

有任何想法吗?这是我的应用程序的一个重要安全特性,我不想因为这么小的问题而在整个平台上遇到这样的困难。

谢谢!

4

2 回答 2

1

我实际上并没有看到 Application.Current.Exit() 在 OnSuspending 中工作;尽管正如您提到的,暂停对您来说发生得不够快(这是设计使然)。在那里抛出异常对我也不起作用。

Window.VisibilityChanged,如果我在那里发出退出/异常,它会在另一个应用程序接管时关闭应用程序。也就是说,VisibilityChanged 在其他情况下也会触发,因此不确定您是否可以涵盖所有场景或依赖它们不改变。 有关更多上下文,请参见此处。

为了回应刚刚出现的@Filip,您不太可能通过认证。Exit() 调用等同于异常。

于 2013-02-08T19:01:00.600 回答
0

如果您致电,我认为您的应用不会通过认证Application.Current.Exit()。如果你真的有信心这就是你想要的——我想值得一试。您可以在退出时简单地卸载任何使用内存/CPU 的东西。

于 2013-02-08T18:39:19.610 回答