有不同的概念,这里涉及:
-the第一件事就是快速应用恢复它是Windows的一个新功能手机8,你可以启用,这样当你按下应用拼贴它没有重新启动应用程序,但保持相同的实例(默认情况下,它只会杀死应用程序,只是重新创建一个新的实例,就好像应用程序从未打开过)。你可以找到更多关于那个here的信息。
- 第二个概念是快速应用切换和墓碑。您可以找到有关应用程序生命周期here的更多信息。基本上,当你按下Windows按钮或导航到另一个应用程序时,你的应用程序将进入休眠状态。在此状态下,应用程序未运行,但仍在内存中。当你回去时,因为一切都在记忆中,所以一切都应该保持原样。在快速应用切换的情况下处理的主要情况是,当您的应用停用时,所有的网络连接都会被终止,因此您应该确保当您返回时不显示任何Web错误消息对话框,并且您重做任何失败的网络请求。
您的应用程序的第二种可能状态是,应用程序处于休眠状态后,您打开了几个应用程序,并且该设备没有足够的内存,那么它将选择逻辑删除您的应用程序。在该状态下,您的应用程序将从内存中删除,因此您没有保存的任何内容都将丢失。当你回到你的应用程序时,它会回到用户以前的页面并重新创建它。
这意味着处理程序之前,这种情况下,关闭你应该有:
- 保存您可能没有被路过的导航参数任何上下文特定的数据。
- 也许保存用户目前正在做的事情(例如,如果他当前正在输入一个长文本,最好保存它以便用户不必从头开始重新输入)
- 保存当前滚动位置或类似选定项目的东西可能是一个加号
此外,当应用程序恢复时,您必须确保您重新查询所需的所有信息。如果您在主页面的OnNavigatedTo中加载一些数据(例如来自Web服务器),然后仅在详细信息页面上重新使用数据而不重新查询它,则会中断一个示例。如果你在详细信息页面,按开始按钮,然后做一些其他的应用程序tombstonne,当你回到应用程序比数据将无法使用(因为内存已被“清除”和onNavigatedTo的主页没有被调用,因为它会直接导航回到详细页面)。
您可以使用page state and application state来保存正确处理墓碑案例所需的任何信息。基本上有一些字典可以添加一些将被序列化的对象(所以你需要确保你试图保存的任何对象都是可序列化的),当应用程序被停用时会自动进行序列化。
要轻松测试Tombtonning案例,您可以在项目属性中的Debug选项卡中选中复选框“在调试时取消激活时为Tombstone”。像这样,当你调试并按下windows按钮或转到另一个应用程序时,它总是会将应用程序划掉。要检查它是否真的是墓碑,当您返回时,您应该会看到您的应用程序显示了几秒钟的恢复屏幕(而在墓碑案中,它几乎是瞬间的)。
这正是FAS设计用于防止的原因。 –
例如打开诺基亚在这里驱动器,然后选择一个位置,然后开始导航。现在点击主页按钮。现在点击平铺并打开应用程序。诺基亚在这里驱动器不重新启动。它使用墓碑状态FAS或快速应用程序切换回你的应用 –
啊,好的,对不起,它的wp8功能我只用wp7 –