windows-phone-7 - 快速切换Windows Phone(7.8)

标签 windows-phone-7

如果我真的需要做任何事情来实现快速切换,我有点困惑。似乎如果我不使用媒体元素、相机和 socket ,我就可以免费获得这种“快速切换”。

我不知道如何测试它。我看到几个视频

  1. 点击 Windows 图标(开始图标)
  2. 点击后退按钮

  1. 按住后退按钮直至出现屏幕 View
  2. 转到其他应用
  3. 返回您的应用。

这两个似乎都加载得很快,但是如果呢。

  1. 加载应用
  2. 点击 Windows 图标
  3. 点击图 block 应用

此时应该进行快速切换,还是会加载应用程序的新实例并杀死旧实例?

最佳答案

这里涉及到不同的概念:

- 第一件事是快速应用程序恢复,这是 Windows Phone 8 的一项新功能,您可以启用它,这样当您按下应用程序磁贴时,它不会重新启动您的应用程序,而是保留相同的实例(默认情况下,它只会杀死该应用程序并重新创建一个新实例,就像该应用程序从未打开过一样)。您可以找到更多相关信息 here .

-第二个概念是快速应用程序切换和逻辑删除。您可以找到有关应用程序生命周期的更多信息here 。基本上,当您按下 Windows 按钮或导航到另一个应用程序时,您的应用程序将进入休眠状态。在此状态下,应用程序未运行,但仍在内存中。当你回去时,因为一切都还在内存中,所以一切都应该像被遗忘的那样。快速应用程序切换时要处理的主要情况是,当您的应用程序停用时,所有网络连接都会被终止,因此您应该确保当您返回时不会显示任何网络错误消息对话框,并且您需要重做任何失败的网络请求。

应用程序的第二种可能的状态是,应用程序处于休眠状态后,您打开了几个应用程序,并且设备没有足够的内存,然后它会选择逻辑删除您的应用程序。在这种状态下,您的应用程序将从内存中删除,因此您未保存的任何内容都将丢失。当您返回应用程序时,它将返回到用户之前所在的页面并重新创建它。
这意味着要在应用程序停用之前处理这种情况,您应该:

  • 保存您可能未通过导航参数传递的任何上下文特定数据。
  • 也许保存用户当前正在执行的操作(例如,如果他当前正在输入长文本,则最好保存它,以便用户不必从头开始重新输入)
  • 保存当前滚动位置或所选项目之类的内容可能会更好

此外,当应用程序恢复时,您必须确保重新查询所需的所有信息。一个可能会中断的示例是,如果您在主页的 OnNavieratedTo 中加载一些数据(例如从 Web 服务器),然后仅重用详细信息页面上的数据而不重新查询它。如果您在详细信息页面上按开始按钮,然后执行其他操作和应用程序墓碑,当您返回应用程序时,数据将不可用(因为内存已被“清除”并且主页的 onNavigateTo不会被调用,因为它将直接导航回详细信息页面)。

您可以使用page state and application state保存正确处理墓碑案件所需的任何信息。基本上,您可以在字典中添加一些将在应用程序停用时自动序列化的对象(因此您需要确保您尝试保存的任何对象都是可序列化的)。

要轻松测试墓碑化情况,您可以在项目属性中的“调试”选项卡中选中“调试时停用时墓碑”复选框。像这样,当您调试并按下 Windows 按钮或转到另一个应用程序时,它总是会删除该应用程序。要检查它是否真的是墓碑化,当您返回时,您应该会看到您的应用程序显示恢复屏幕几秒钟(而在墓碑化情况下,它几乎是瞬时的。

关于windows-phone-7 - 快速切换Windows Phone(7.8),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19523359/

相关文章:

asp.net - WCF 数据服务还是 WCF 服务?

windows-phone-7 - WP7 应用版本

c# - 使用后台线程从 xml 文件加载内容?

windows-phone-7 - 以编程方式关闭 WP7 应用程序?

c# - 选择后 ContextMenu 不会消失。

silverlight-4.0 - 创建登录屏幕

c# - 选择一个项目两次或更多次

c# - 如何在 LongListSelector 中显示/隐藏(如果可能,使用动画)复选框

c# - 尝试使用 Windows Phone ShellTile API 创建多个动态磁贴时如何避免错误?

windows-phone-7 - 你能在wp7中以编程方式锁定屏幕吗