標籤:style blog http io color ar os 使用 sp
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應用程式生命週期及資料儲存