Freigeben über


SuspendingEventHandler Delegat

Definition

Stellt die -Methode dar, die das Suspending-Ereignis behandelt.

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)

Parameter

sender
Object

Platform::Object

IInspectable

Das Objekt, in dem der Handler angefügt ist.

e
SuspendingEventArgs

Ereignisdaten.

Attribute

Windows-Anforderungen

Gerätefamilie
Windows 10 (eingeführt in 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (eingeführt in v1.0)

Beispiele

Dieses Codebeispiel veranschaulicht ein typisches Verwendungsmuster für dieses Ereignis. Dieser Code wird von vielen XAML-Beispielen, z. B. dem Eingabebeispiel, als Teil des Codebehinds für die Datei app.xaml verwendet. Wenn Sie die XAML-Beispiele durchsuchen, finden Sie den Quellcode für die Klassen-API, auf die SuspensionManager in diesem Code verwiesen wird.

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 

Hinweise

Das System hält Ihre App an, wenn der Benutzer zu einer anderen App oder zum Desktop wechselt, und setzt Ihre App fort, wenn der Benutzer zurück zu ihr wechselt. Das System kann Ihre App jedoch auch beenden, während sie angehalten wird, um Ressourcen freizugeben. Daher sollten Sie das Angehaltene Ereignis behandeln, um die folgenden Vorgänge auszuführen:

  • Behalten Sie den Benutzersitzungsstatus bei.
  • Lassen Sie alle exklusiven Sperren für Ressourcen frei.
  • Reduzieren Sie nach Möglichkeit die Arbeitsspeicherauslastung. Serialisieren Sie beispielsweise alle Daten, die bei der Reaktivierung einfach in Objektform rekonstruiert werden können.
  • Speichern Sie den App-Status. Das Suspending-Ereignis ist der einzige Hinweis darauf, dass Ihre App vor der Kündigung (falls dies geschieht) erhält. Daher sollten Sie genügend Sitzungsstatus (z. B. den aktuellen Artikel, der gelesen wird oder die aktuelle Filmwiedergabeposition) speichern, um während der Aktivierung genau dieselbe Benutzeroberfläche neu zu erstellen. Die Anleitung für Inhaltserstellungs-Apps besteht darin, die Arbeit eines Benutzers frühzeitig und häufig zu speichern, aber auch eine letzte Speicherung während des Anhaltens zu commiten. Das Speichern von Daten vor dem Anhalten ist nützlich, da der Ereignishandler für das Anhalten nur fünf Sekunden zeit hat, um den Vorgang abzuschließen.

Wenn Ihre App beendet wird, können Sie den App-Status in einer OnLaunched-Methode wiederherstellen. Wenn Ihre App fortgesetzt wird, bevor sie beendet wird, stellt das System den App-Zustand automatisch wieder her. Sie sollten das Resuming-Ereignis nur behandeln, wenn Sie angezeigte Inhalte aktualisieren müssen, die sich möglicherweise geändert haben, während die App angehalten wird, z. B. Nachrichtenfeeds oder der Standort des Benutzers.

Gilt für: