首页 > 代码库 > windows phone应用程序生命周期及数据保存

windows phone应用程序生命周期及数据保存

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;            }

 


 

windows phone应用程序生命周期及数据保存