WP7_应用数据存储Tombstoning(墓碑化).docx

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
WP7 应用数据存储Tombstoning(墓碑化) Windows Phone 可以支持5个墓碑化(Tombstoning)应用程序,第三方开发的应用程序只能使用最后一个墓碑空间,最新的墓碑化应用程序会自动替换前一个程序。我们可以利用墓碑化功能暂时保存应用程序当前状态,如果用户有意或无意触碰了手机Home 按键,并再次点击Back 按键时应用程序会从墓碑化状态激活并返回最后应用程序状态。 在开发墓碑化应用程序时,我们可以使用两种数据存储方式:应用程序状态(Application State)、页面状态(Page State),这两种方式最大的区别在于数据存储和使用范围不同,应用程序状态通过 PhoneApplicationService.State 属性可存储所有应用程序页面的数据,并不局限于某一个页面,不同的页面可以通过PhoneApplicationService.State 来获取相关的数据。页面状态使用 PhoneApplicationPage.State 属性针对的是单独页面的数据内容,当用户点击Back 按键返回时,系统将返回用户之前看到的页面信息。需要注意的是这些存储都是暂时性的,如果应用程序需要永久的数据存储,还应当使用独立存储(IsolatedStorage)方式,具体可参考《 WP7 应用数据存储IsolatedStorage 篇》。 下面我们来做一个简单的实例应用,新建一个Windows Phone 项目,加入TextBox 控件。 <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0"> <StackPanel Orientation="Vertical"> <TextBlock Text="Input text here:"/> <TextBox x:Name="testTextBox" Height="70"/> </StackPanel> </Grid> 在存储页面数据时我们需要使用 OnNavigatedFrom 和 OnNavigatedTo 方法,当用户离开某页面时将会启动该页面的OnNavigatedFrom 方法,当转向某页面时将执行该页面的OnNavigatedTo 方法。在使用上述方法时需要增加System.Windows.Navigation 命名空间。 首先我们来编写OnNavigatedFrom 方法的内容,当用户离开MainPage 页面后,将testTextBox 中填写的内容保存到textVal 键。此处使用的是PhoneApplicationPage.State 方式进行存储。 protected override void OnNavigatedFrom(NavigationEventArgs e) { State["textVal"] = testTextBox.Text; base.OnNavigatedFrom(e); } 接下来继续编写OnNavigatedTo 方法,当用户点击Back 按键返回MainPage页面,将恢复之前testTextBox 填写的内容。通过State.TryGetValue 方法即可获得之前保存到textVal 键中的值。 protected override void OnNavigatedTo(NavigationEventArgs e) { object textObj; if (State.TryGetValue("textVal", out textObj)) { testTextBox.Text = textObj.ToString(); } base.OnNavigatedTo(e); } 如果这个TextBox 的内容将用于整个应用程序,任何页面都能够访问到这个数据,则需要使用PhoneApplicationService.State 方法。在程序中增加Microsoft.Phone.Shell 命名空间,将程序稍微调整如下。 PhoneApplicationService service = PhoneApplicationService.Current; protected override void OnNavigatedFrom(NavigationEventArgs e) { service.State["textVal"] = testTextBox.Text; base.OnNavigatedFrom(e); } protected override void OnNavigatedT

您可能关注的文档

文档评论(0)

asd522513656 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档