windwos phone应用程序生命周期大家可以参考msdn上的介绍,上面介绍的很详细。http://msdn.microsoft.com/zhcn/library/windows/apps/xaml/hh464925.aspx
接下来主要介绍在应用程序挂起时数据的保存。
保存数据我们可以通过以下这三种方式。
1、通过SuspensionManager类
2、通过NavigationHelper类
3、通过微软提供的API,ApplicationData.Current.LocalSettings
注意:SuspensionManager和NavigationHelper是微软为我们封装好的两个类,右键解决方案->添加新项->基本页,添加完基本页以后vs会自动生成一个common文件夹。
1、使用SuspensionManager保持应用程序挂起时的状态
①、首先找到app.xaml.cs文件
②、在OnLaunched事件中注册SuspensionManager
//注册SuspensionManager 程序挂起时通知保存数据 SuspensionManager.RegisterFrame(rootFrame, "appFrame");
③、在事件OnSuspending保存挂起数据
await SuspensionManager.SaveAsync();
④、在OnLaunched事件中加载状态
if (e.PreviousExecutionState == ApplicationExecutionState.Terminated) { // TODO: 从之前挂起的应用程序加载状态 await SuspensionManager.RestoreAsync(); }
2、NavigationHelper类的使用要依赖于SuspensionManager,在使用NavigationHelper类之前先配置SuspensionManager,方法如上
①、应用程序挂起保存数据,在NavigationHelper_SaveState
private void NavigationHelper_SaveState(object sender, SaveStateEventArgs e) { e.PageState.Add("txt", txtName.Text); }
②、在NavigationHelper_LoadState事件中加载保存数据
private void NavigationHelper_LoadState(object sender, LoadStateEventArgs e) { if (e.PageState!=null&&e.PageState.ContainsKey("txt")) { txtName.Text = e.PageState["txt"] as string; } }
3、使用微软提供API
//保存数据 Windows.Storage.ApplicationData.Current.LocalSettings.Values["txt"] = txtName.Text;
//获取数据 string str = Windows.Storage.ApplicationData.Current.LocalSettings.Values["txt"] as string; if (str != null) { txtName.Text = str; }
时间: 2024-11-05 06:26:53