Windows Phone应用导航与状态管理全解析
1. 应用导航与页面创建顺序
在应用导航过程中,每个应用都有自己独立的内部页面返回栈,这与平台的应用返回栈是分开的。应用平台会跟踪用户离开多页面应用时所在的页面。当应用被挂起(tombstoned),用户返回应用时,页面需要重新构建,而页面创建的顺序不一定与原始创建顺序相同。
例如,用户在离开应用时处于第二页,返回应用时会回到第二页,这会导致该页面重新创建。若用户随后从第二页返回主页面,主页面也会重新创建。若用户在应用内页面层级中向前导航,然后切换到占用大量内存的其他应用(导致原应用被挂起),再返回原应用时,页面将以相反顺序构建。
为确保导航时状态的一致性,应用不应依赖页面之间的对象生命周期层次关系。所有页面应负责维护自己的私有状态,跨多个页面使用的状态应存储在视图模型(viewmodel)中,且视图模型应始终可被所有页面访问,具有可预测的有限生命周期特性,通常存储在App类中。
2. 导航与状态分类
应用导航(包括应用内和应用间)时,应用状态可分为以下三类:
| 状态类型 | 描述 | 指南 |
| — | — | — |
| 临时页面状态 | 特定于页面的状态,不需要在应用运行之间持久化,如未提交的文本更改值或页面的视觉状态。 | 在 NavigatedFrom 事件中存储在 PhoneApplicationPage.State 属性中,并在 NavigatedTo 事件中检索。 |
| 临时应用状态 | 应用范围内的状态,不需要在应用运行之间持久化,如
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



