导航&墓碑 - 最佳实践

时间:2010-11-25 19:47:32

标签: windows-phone-7 navigation tombstoning

我正在学习如何在页面和墓碑之间导航。我想知道是否有人能指出一些很好的例子,不仅向我展示了如何正确使用导航的基础知识,还有更复杂和高级导航问题的好例子?

  • 在导航到其他页面并导航回来时,我有些问题围绕内存泄漏问题?
  • 一旦页面完成了它的工作,是否有一个关闭的页面调用(我不想在它完成之后它的实例闲置)?
  • 另一个问题是,如果应用程序被逻辑删除,我将如何维持状态(仍然试图绕过该术语)。

谢谢!

4 个答案:

答案 0 :(得分:4)

没有关闭页面调用,操作系统在退出时自动关闭页面并释放已用内存(因此这里不应该有泄漏)。

这里的一些资源涵盖了墓碑和高级导航概念。

Understanding the Windows Phone Application Execution Model, Tombstoning, Launcher and Choosers, and Few More Things That Are on the Way – Part 1Part 2Part 3

Introducing the concept of “Places” - Peter Torr's Blog

Redirecting an initial navigation - Peter Torr's Blog

答案 1 :(得分:1)

我喜欢将WP7导航视为一个只有后退按钮的简单浏览器。 Naviation模型基于堆栈模式(Last In First Out),需要通过所有来回到第一页。这不是PC用户习惯的,但在移动世界中是最好的解决方案之一。 你必须坚持这种模式,永远不要做“转到主页”按钮 - 你的应用程序肯定不会通过认证(有一些解决方法,但我不建议这样做)。 很多页面都会让用户感到生气,这就是为什么一个好主意最多有3到5页的原因。例如,第一页用户选择他要做的事情,下一页是登录页面,然后是更复杂的界面使用全景和枢轴控制。

向简单的浏览器模型添加cookie。当您的浏览器加载页面时,它会设置一个包含一些信息的cookie,然后关闭浏览器,当您返回页面时,它可以从该cookie获取之前的状态。墓碑是非常simailar。 - link。还有一些info about tombstoning

  

在导航到其他页面并导航回来时,我有一些问题围绕内存泄漏问题?

内存泄漏是什么意思?您正在使用托管框架。

  

一旦页面完成了它的工作,是否有一个关闭页面调用(我不想在它完成之后它的实例闲置)?

你不必这样做。每次进入下一页时页面都会被销毁,除非一个帖子仍然在那里工作。

  

另一个问题是,如果应用程序被逻辑删除,我将如何维持状态(仍然试图绕过该术语)。

基本上由develepor来管理这个。它不是强制性的,但提供了良好的用户体验。

答案 2 :(得分:1)

  

另一个问题是,如果应用程序被逻辑删除,我将如何维持状态(仍然试图绕过该术语)。

使用隔离存储。

答案 3 :(得分:0)

您可以查看我最近发布的WP7源代码(http://columbus.codeplex.com/)的Columbus MVC框架。 Columbus解决了导航和墓碑(提供带有历史记录的强类型导航和可以在墓碑中存活的视图模型)。