[Windows 8]生命週期事件處理-----應用暫停
系統終止暫停應用時不會發出通知,因此在系統暫停應用之前
把必要的應用程序數據通過 suspending 事件處理方法保存起來
可以避免數據遺失,便於再次激活時還原應用
處理方法可以在應用初始化時註冊,像下面的程式碼這樣
public App()
{
this.InitializeComponent();
this.Suspending += new SuspendingEventHandler(OnSuspending);
}
上面的程式碼使用了SuspendingEventHandler事件處理器來暫停事件註冊處理方法OnSuspending
Windows 提供了Windows.Storage.ApplicationData 和 SuspensionManager 類別
用來幫助我們管理應用數據
Windows.Storage.ApplicationData 類別具有 LocalSettings 屬性
該屬性返回儲存數據的容器ApplicationDataContainer
透過使用 ApplicationDataContainer 可以儲存必要的應用數據到本地當中
SuspensionManager 是 "基本頁" 模板的幫助程式類別
可用來保存和還原窗口的導航狀態等多種操作
在暫停事件處理方法中使用這兩個類別可以儲存應用程式數據
上面註冊的 OnSuspending 方法就使用了 SuspensionManager 程式碼如下:
async protected void OnSuspending(object sender, SuspendingEventArgs arges)
{
SuspendingDeferral deferral = arges.SuspendingOperation.GetDeferral();
await SuspensionManager.SaveAsync();
deferral.Complete();
}
為了確保數據儲存完全,程式碼中使用 SuspendingOperation.GetDeferral 方法申請暫停延遲
然後呼叫SuspensionManager.SaveAsync 方法保存應用的導航狀態
應用數據存除完成後,呼叫Complete方法結束延遲執行暫停