SuspendingEventHandler 代理人
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
表示將處理 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
附加處理常式的物件。
事件資料。
- 屬性
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 方法覆寫中還原應用程式狀態。 如果您的應用程式在終止之前繼續,系統會自動還原應用程式狀態。 只有當需要重新整理應用程式暫停時可能已變更的任何顯示內容時,才應該處理 繼續 事件,例如新聞摘要或使用者的位置。