Application.Suspending Ereignis
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Tritt auf, wenn die Anwendung von einem anderen Zustand in den Zustand Angehalten wechselt.
public:
virtual event SuspendingEventHandler ^ Suspending;
// Register
event_token Suspending(SuspendingEventHandler const& handler) const;
// Revoke with event_token
void Suspending(event_token const* cookie) const;
// Revoke with event_revoker
Application::Suspending_revoker Suspending(auto_revoke_t, SuspendingEventHandler const& handler) const;
public event SuspendingEventHandler Suspending;
function onSuspending(eventArgs) { /* Your code */ }
application.addEventListener("suspending", onSuspending);
application.removeEventListener("suspending", onSuspending);
- or -
application.onsuspending = onSuspending;
Public Custom Event Suspending As SuspendingEventHandler
Ereignistyp
Beispiele
In diesem Codebeispiel wird ein typisches Verwendungsmuster für dieses Ereignis veranschaulicht. Dieser Code wird von vielen XAML-Beispielen 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 wieder 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:
- Beibehalten des Benutzersitzungszustands.
- Lassen Sie alle exklusiven Sperren für Ressourcen frei.
- Reduzieren Sie die Speicherauslastung, wenn möglich. Serialisieren Sie beispielsweise alle Daten, die bei der Reaktivierung einfach in Objektform rekonstruiert werden können.
- Speichern Des App-Zustands. Das Suspending-Ereignis ist der einzige Hinweis, den Ihre App vor der Beendigung erhält (falls dies geschieht). Aus diesem Fall sollten Sie genügend Sitzungszustand (z. B. den aktuellen Gelesenen Artikel oder die aktuelle Position der Filmwiedergabe) speichern, um während der Aktivierung genau die gleiche Erfahrung neu zu erstellen. Die Anleitung für Inhaltserstellungs-Apps besteht darin, die Arbeit eines Benutzers frühzeitig und häufig zu speichern, aber auch einen letzten Speicher während des Anhaltens zu committen. Das Speichern von Daten vor dem Anhalten ist nützlich, da der Suspending-Ereignishandler 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-Methodenüberschreibung 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 den Standort des Benutzers.
Das Suspending-Ereignis wird in derselben Wohnung ausgeführt, in der es registriert wurde.