我只是在学习如何在页面和墓碑之间导航。我想知道是否有人可以向我指出一些很好的例子,这些例子不仅向我展示了如何正确使用导航的基础知识,而且还向我展示了更复杂和高级导航问题的好例子?
- 在导航到其他页面并返回时,我有一些关于内存泄漏的问题?
- 是否有关闭页面调用,一旦页面完成它的工作(我不希望它的实例在我完成后挂起)?
- 另一个问题是如果应用程序被墓碑化(仍然试图围绕这个术语),我如何保持状态。
谢谢!
我只是在学习如何在页面和墓碑之间导航。我想知道是否有人可以向我指出一些很好的例子,这些例子不仅向我展示了如何正确使用导航的基础知识,而且还向我展示了更复杂和高级导航问题的好例子?
谢谢!
没有关闭页面调用,操作系统会在页面退出时自动关闭页面并释放使用的内存(因此这里应该没有泄漏)。
这里的一些资源涵盖了墓碑和高级导航概念。
了解 Windows Phone 应用程序执行模型、墓碑、启动器和选择器,以及即将推出的其他一些东西 - 第 1部分、第 2部分、第 3 部分
另一个问题是如果应用程序被墓碑化(仍然试图围绕这个术语),我如何保持状态。
使用隔离存储。
我喜欢把 WP7 导航想象成一个只有后退按钮的简单浏览器。Naviation 模型是基于堆栈模式(Last In First Out)的,需要遍历所有才能回到首页。这不是 PC 用户习惯的,但在移动世界中是最好的解决方案之一。你必须坚持这种模式,永远不要做“转到主页”按钮——你的应用肯定不会通过认证(有一些解决方法,但我不建议这样做)。很多页面会让用户生气,这就是为什么一个好主意是最多有 3 到 5 个页面。例如,第一页用户选择他要做什么,下一页是登录页面,然后对于更复杂的界面使用全景和枢轴控制。
向简单浏览器模型添加 cookie。当您的浏览器加载一个页面时,它会设置一个包含一些信息的 cookie,然后您关闭浏览器,当您返回该页面时,它可以从该 cookie 中获取先前的状态。墓碑是非常相似的。-链接。有关墓碑的更多信息
在导航到其他页面并返回时,我有一些关于内存泄漏的问题?
内存泄漏是什么意思?您正在托管框架中工作。
是否有关闭页面调用,一旦页面完成它的工作(我不希望它的实例在我完成后挂起)?
您不必这样做。除非线程仍在该处工作,否则每次转到下一页时页面都会被销毁。
另一个问题是如果应用程序被墓碑化(仍然试图围绕这个术语),我如何保持状态。
基本上由开发人员来管理这个。这不是强制性的,但可以提供良好的用户体验。
您可以查看我最近发布的 WP7 源代码 ( http://columbus.codeplex.com/ ) 的 Columbus MVC 框架。Columbus 解决了 Navigation 和 Tombstoning(提供强类型导航以及可以在 tombstoning 中幸存的历史和视图模型)。