WinPhone 开发(4)-----快速恢复应用程序上一次的会话状态
通过 App.xaml.cs 代码后置文件中的事件处理程序通知应用程序,保存应用程序的当前状态。通过 IsolatedStorageSettings 的独立存储特殊功能提供便捷的方法来保存名称/值对信息,而不必创建和访问文本文件。在用户重新启动应用程序之后,即可检索状态信息,并恢复应用程序在上一次会话中的状态。
将下面的两个方法写到App.xaml.cs中,然后在Application_Launching、Application_Activated事件中调用LoadState方法,在Application_Deactivated、Application_Closing事件事件中调用SaveState方法。
其中“myValue”就是要保存的键,当然还要在XAML的后台代码中保存键相对应的值。例如 phoneAppService.State["myValue"] = "key";
1 private void SaveState()
2 {
3 PhoneApplicationService phoneAppService = PhoneApplicationService.Current;
4 IsolatedStorageSettings settings = IsolatedStorageSettings.ApplicationSettings;
5
6 settings["myValue"] = phoneAppService.State["myValue"];
7 }
8
9 private void LoadState()
10 {
11 PhoneApplicationService phoneAppService = PhoneApplicationService.Current;
12 IsolatedStorageSettings settings = IsolatedStorageSettings.ApplicationSettings;
13
14 string content="";
15 if(settings.TryGetValue<string>("myValue",out content))
16 {
17 phoneAppService.State["myValue"] = content;
18 }
19 }
最后在需要的时候再取出来用即可。例如 在XAMl 页面加载时获得myValue的值。
1 private void PhoneApplicationPage_Loaded(object sender, RoutedEventArgs e)
2 {
3 Object myValue;
4 if(phoneAppService.State.ContainsKey("myValue"))
5 {
6 if(phoneAppService.State.TryGetValue("myValue",out myValue))
7 {
8 myTextBox.Text=myValue.ToString();
9 }
10 }
11 }
一步一脚印