0

当我们停用 WP 应用程序时,它可能会被 OS 删除并在以后终止。当进程终止时,我需要将一些未保存的应用程序数据保存到持久存储中,但在此之前不需要。显然,Deactivated 事件不能用于此目的,因为它会在应用程序移至后台时立即引发;Close 事件也不是我们需要的事件,因为它不会在应用程序进程被操作系统终止时引发。是否有一个特殊的 Windows Phone 应用程序事件,比如 Application_Terminated?

4

2 回答 2

1

问题是操作系统只会在你的应用程序处于严重的资源压力下时才会删除它。当时唤醒应用程序并运行应用程序代码是不切实际的,因为它可能会冒险当前处于前台的任何内容。所有现代移动操作系统(包括 Android、IOS)都存在此限制。这只是在电池/资源友好型环境中运行的成本。

话虽如此,听起来您的后备存储并没有消除用户“保存”的数据和在用户完成事务之前刚刚被缓存的数据之间的歧义。构建这个想法会很有用。想想现在互联网上一些更智能的网站的工作方式。您可以在输入数据的过程中导航离开,当您返回时,网站会向您显示部分填写的表格。该网站了解您尚未“完成”,但它尊重您提供了“完成”所需的一些信息这一事实。

我在这里要说的是,通过了解和适应用户可能使用应用程序的方式,问题很容易解决。将您的应用程序视为一个网站(至少在这种情况下)有助于透视事物。对冗长的答案感到抱歉。我希望它有帮助:)

于 2014-04-12T21:45:38.207 回答
0

没有这样的事件。您应该将您的状态保存在 Deactivate 上,以便如果应用程序从内存中删除(墓碑),您可以在重新激活时重新设置自己。如果您的问题是确定是否需要在 Activated 上恢复状态,请查看 ActivatedEventArgs.IsApplicationInstancePreserved 标志 ( http://msdn.microsoft.com/en-us/library/windowsphone/develop/microsoft.phone.shell .activatedeventargs.isapplicationinstancepreserved(v=vs.105).aspx )。这个标志告诉你你的应用是否被墓碑化了。如果不是,您可以丢弃旧状态或在下次停用时覆盖它。

于 2014-04-09T09:39:38.777 回答