Windows Phone开发之独立存储二
2012-05-28 23:52
375 查看
问题现象:
在实际应用过程中,常常是在操作一个程序时,会突然插入新的任务,当前任务就要提交到后台,去执行新的程序。正比如,一个用户正在注册一个网站,正在填写表单信息,但是一个优先级更高的任务需要解决,这样会用到Back或Start按键来选择其他操作。如果注册表单的数据不保存的话,在重新加载该页面时可能会丢失数据,这对用户来说是很差的体验。本篇就要解决这样的问题。
程序案例:
MainPage只有一个TextBox。有TextBox的myTextBox_TextChanged事件和MainPage的Root_Loaded事件:
流程是这样的:
首先,在TextBox输入内容,根据myTextBox_TextChanged事件保存到phoneAppService.State中,通过APP.xaml.cs文件中的Application_Launching、Application_Activated、Application_Deactivated、Application_Closing事件来保存和读取phoneAppService.State数据到独立存储IsolatedStorageSetting中。
因为phoneAppService.State数据在Back或Start之后会被内存删掉的,只能保存到独立存储的特殊功能上。
切记:模拟器重启(相当于真机重启)之后都不会保存。
-------------------------------
APP.xaml.cs文件:
在实际应用过程中,常常是在操作一个程序时,会突然插入新的任务,当前任务就要提交到后台,去执行新的程序。正比如,一个用户正在注册一个网站,正在填写表单信息,但是一个优先级更高的任务需要解决,这样会用到Back或Start按键来选择其他操作。如果注册表单的数据不保存的话,在重新加载该页面时可能会丢失数据,这对用户来说是很差的体验。本篇就要解决这样的问题。
程序案例:
MainPage只有一个TextBox。有TextBox的myTextBox_TextChanged事件和MainPage的Root_Loaded事件:
流程是这样的:
首先,在TextBox输入内容,根据myTextBox_TextChanged事件保存到phoneAppService.State中,通过APP.xaml.cs文件中的Application_Launching、Application_Activated、Application_Deactivated、Application_Closing事件来保存和读取phoneAppService.State数据到独立存储IsolatedStorageSetting中。
因为phoneAppService.State数据在Back或Start之后会被内存删掉的,只能保存到独立存储的特殊功能上。
切记:模拟器重启(相当于真机重启)之后都不会保存。
private void myTextBox_TextChanged(object sender, TextChangedEventArgs e) { //保存文本框的内容 PhoneApplicationService phoneAppService = PhoneApplicationService.Current; phoneAppService.State["myValue"] = myTextBox.Text; } private void Root_Loaded(object sender, RoutedEventArgs e) { PhoneApplicationService phoneAppService = PhoneApplicationService.Current; if (phoneAppService.State.ContainsKey("myValue")) { myTextBox.Text = phoneAppService.State["myValue"].ToString(); } }
-------------------------------
APP.xaml.cs文件:
// 应用程序启动(例如,从“开始”菜单启动)时执行的代码 // 此代码在重新激活应用程序时不执行 private void Application_Launching(object sender, LaunchingEventArgs e) { LoadMyValue(); } // 激活应用程序(置于前台)时执行的代码 // 此代码在首次启动应用程序时不执行 private void Application_Activated(object sender, ActivatedEventArgs e) { LoadMyValue(); } // 停用应用程序(发送到后台)时执行的代码 // 此代码在应用程序关闭时不执行 private void Application_Deactivated(object sender, DeactivatedEventArgs e) { SaveMyValue(); } // 应用程序关闭(例如,用户点击“后退”)时执行的代码 // 此代码在停用应用程序时不执行 private void Application_Closing(object sender, ClosingEventArgs e) { SaveMyValue(); } private void SaveMyValue() { PhoneApplicationService phoneAppService = PhoneApplicationService.Current; IsolatedStorageSettings setting = IsolatedStorageSettings.ApplicationSettings; if (phoneAppService.State.ContainsKey("myValue")) { setting["myValue"] = phoneAppService.State["myValue"]; } } private void LoadMyValue() { PhoneApplicationService phoneAppService = PhoneApplicationService.Current; IsolatedStorageSettings setting = IsolatedStorageSettings.ApplicationSettings; if (setting.Contains("myValue")) { phoneAppService.State["myValue"] = setting["myValue"]; } }
相关文章推荐
- Windows Phone 7 开发 31 日谈——第15日:独立存储
- Windows Phone 7(WP7)开发工具 查看独立存储空间中数据库内容
- Windows Phone开发之独立存储的两种使用方法小结
- Windows Phone开发之路(18) 独立存储
- Windows Phone页面导航和独立存储开发总结
- Windows Phone实用开发技巧(39):WebBrowser引用独立存储空间中的图片
- Windows Phone页面导航和独立存储开发总结
- Windows Phone开发之独立存储、文件的读写、ListBox绑定数据、NavigationService实现XAML跳转
- Windows Phone开发(27):隔离存储A .
- Windows Phone 7程序独立存储空间容量测试
- 针对 Windows Phone 7 上的独立存储的 Sterling
- 修炼九阴真经Windows Phone开发 (8):独立存储Isolated storage
- Windows Phone开发(29):隔离存储C .
- 独立存储, windows phone IsolatedStorageFile
- Windows Phone 31 日谈——第15日:独立存储
- Windows Phone开发(27):隔离存储A
- Windows Phone 8的独立存储文件系统
- windows phone 独立存储空间的操作(2)[转]
- Windows Phone 7 独立存储Isolated Storage
- Windows Phone开发(27):隔离存储A