SuspendingEventHandler 代理人

定義

表示將處理 Suspending 事件的方法。

public delegate void SuspendingEventHandler(Platform::Object ^ sender, SuspendingEventArgs ^ e);
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.Guid(591565925, 58218, 16610, 177, 57, 164, 112, 70, 2, 166, 225)]
class SuspendingEventHandler : MulticastDelegate
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.Guid(591565925, 58218, 16610, 177, 57, 164, 112, 70, 2, 166, 225)]
public delegate void SuspendingEventHandler(object sender, SuspendingEventArgs e);
Public Delegate Sub SuspendingEventHandler(sender As Object, e As SuspendingEventArgs)

參數

sender
Object

Platform::Object

IInspectable

附加處理常式的物件。

e
SuspendingEventArgs

事件資料。

屬性

Windows 需求

裝置系列
Windows 10 (已於 10.0.10240.0 引進)
API contract
Windows.Foundation.UniversalApiContract (已於 v1.0 引進)

範例

此程式碼範例示範此事件的一般使用模式。 此程式碼是由許多 XAML 範例使用,例如 輸入範例,做為 app.xaml 檔案程式碼後置的一部分。 如果您流覽 XAML 範例,您可以找到此程式碼中所參考類別 SuspensionManager API 的原始程式碼。

async protected void OnSuspending(object sender, SuspendingEventArgs args)
{
    SuspendingDeferral deferral = args.SuspendingOperation.GetDeferral();
    await SuspensionManager.SaveAsync();
    deferral.Complete();
}
Private Async Sub OnSuspending(sender As Object, args As SuspendingEventArgs) 
    Dim deferral As SuspendingDeferral = args.SuspendingOperation.GetDeferral 
    Await SuspensionManager.SaveAsync 
    deferral.Complete() 
End Sub 

備註

每當使用者切換至另一個應用程式或桌面時,系統會暫停您的應用程式,並在使用者切換回應用程式時繼續您的應用程式。 不過,系統也可以在應用程式暫停時終止,以釋出資源。 因此,您應該處理 Suspending 事件來執行下列作業:

  • 保留使用者會話狀態。
  • 釋放資源的任何獨佔鎖定。
  • 盡可能減少記憶體使用量。 例如,在重新啟用時,序列化任何容易在物件表單中重新建構的資料。
  • 儲存應用程式狀態。 暫停事件是應用程式在終止前收到的唯一指示, (發生) 。 因此,您應該儲存足夠的會話狀態 (,例如正在讀取的目前文章或目前的電影播放位置) ,以在啟用期間重新建立完全相同的體驗。 內容建立應用程式的指導方針是提早且經常儲存使用者的工作,但也會在 暫停期間認可最後一個儲存。 在暫停之前儲存資料很有用,因為 暫停 事件處理常式只有 5 秒才能完成其作業。

如果您的應用程式已終止,您可以在 OnLaunched 方法覆寫中還原應用程式狀態。 如果您的應用程式在終止之前繼續,系統會自動還原應用程式狀態。 只有當需要重新整理應用程式暫停時可能已變更的任何顯示內容時,才應該處理 繼續 事件,例如新聞摘要或使用者的位置。

適用於