資訊
The topic you requested is included in another documentation set. For convenience, it's displayed below. Choose Switch to see the topic in its original location.

如何暫停應用程式 (XAML)

了解如何在系統暫停您的應用程式時,儲存重要的應用程式資料。 這個範例會為 Suspending 事件登錄一個事件處理常式,而且會將一個字串儲存至檔案。

藍圖: 這個主題與其他主題的相關性?請參閱:

指示

步驟 1: 登錄暫停事件處理常式

登錄以處理 Suspending 事件,它會指示應用程式必須在系統暫停應用程式之前,儲存自己的應用程式資料。


using System;
using Windows.ApplicationModel;
using Windows.ApplicationModel.Activation;
using Windows.UI.Xaml;

partial class MainPage
{
   public MainPage()
   {
      InitializeComponent();
      Application.Current.Suspending += new SuspendingEventHandler(App_Suspending);
   }
}

步驟 2: 暫停之前,先儲存應用程式資料

當您的應用程式處理 Suspending 事件時,它有機會在處理常式函式中儲存自己的重要應用程式資料。應用程式必須使用 LocalSettings 儲存 API 來同步儲存簡單的應用程式資料。


partial class MainPage
{
    async void App_Suspending(
        Object sender, 
        Windows.ApplicationModel.SuspendingEventArgs e)
    {
        // TODO: This is the time to save app data in case the process is terminated
    }
}

步驟 3: 釋放獨占資源及檔案控制代碼

當您的應用程式處理 Suspending 事件時,也可以釋放獨占資源及檔案控制代碼。獨占資源的範例包括相機、I/O 裝置、外部裝置及網路資源。明確釋放獨占資源及檔案控制代碼,有助於確保當您的應用程式不使用這些資源時,其他應用程式仍然可以使用它們。如果在終止後重新啟用應用程式,則應該會開啟獨占資源及檔案控制代碼。

備註

當使用者切換至另一個應用程式、桌面或 [開始] 畫面時,系統會暫停您的應用程式。當使用者切換回您的應用程式時,系統就會繼續執行應用程式。當系統繼續執行您的應用程式時,您的變數和資料結構內容和系統暫停應用程式之前一樣,沒有變化。系統會將應用程式回復成暫停之前的相同狀態,如此使用者會以為應用程式一直在背景中執行。

當應用程式暫停時,系統會嘗試讓應用程式及其資料保留在記憶體中。不過,如果系統沒有資源可將應用程式保存在記憶體中,系統將終止您的應用程式。當使用者切換回已被終止的暫停應用程式時,系統會傳送 Activated 事件,且必須在它的 OnLaunched 方法中復原應用程式資料。

系統不會在應用程式終止時提供通知,所以應用程式必須在暫停時儲存應用程式資料並釋放獨占資源及檔案控制代碼,並在終止狀態結束後重新啟用時還原這些項目。

注意   如果您需要在應用程式暫停時進行非同步工作,就必須延遲完成暫停,直到工作完成為止。您可以將 GetDeferral 方法用於 SuspendingOperation 物件 (透過事件引數提供) 來延遲完成暫停,直到您在傳回的 SuspendingDeferral 物件上呼叫 Complete 方法為止。
注意  為了改善 Windows 8.1 的系統回應性,當應用程式暫停之後,存取資源的優先順序會變低。為了支援這個新的優先順序,會延長暫停作業逾時,在 Windows 上讓應用程式與標準優先順序一樣擁有 5 秒逾時,或在 Windows Phone 上有介於 1 到 10 秒之間的逾時。 您無法延長或改變這個逾時長度。

使用 Microsoft Visual Studio 偵錯的注意事項:  Visual Studio 會防止 Windows 暫停已連接至偵錯工具的應用程式。這是為了讓使用者在應用程式執行時可以檢視 Visual Studio 偵錯 UI。當您正在對某個應用程式偵錯時,您可以使用 Visual Studio 傳送給它一個暫停事件。 確定 [偵錯位置] 工具列已經顯示,然後按一下 [暫停] 圖示。

相關主題

工作
如何啟用應用程式
如何繼續應用程式
概念
應用程式週期
指導方針
應用程式暫停和繼續的指導方針
參考
Windows.UI.Xaml.Application

 

 

顯示:
© 2015 Microsoft