So wird's gemacht: Anhalten einer App
Language: HTML | XAML

So wird’s gemacht: Anhalten einer App (XAML)

[ Dieser Artikel richtet sich an Windows 8.x- und Windows Phone 8.x-Entwickler, die Windows-Runtime-Apps schreiben. Wenn Sie für Windows 10 entwickeln, finden Sie weitere Informationen unter neueste Dokumentation]

Hier erfahren Sie, wie Sie wichtige App-Daten speichern, wenn das System die App anhält. Im Beispiel wird ein Ereignishandler für das Suspending-Ereignis registriert und eine Zeichenfolge in einer Datei gespeichert.

Roadmap: Wie hängt dieses Thema mit anderen zusammen? Siehe:

Anweisungen

Schritt 1: Registrieren des Suspending-Ereignishandlers

Registrieren Sie die Behandlung des Suspending-Ereignisses, das angibt, dass die App ihre App-Daten speichern sollte, bevor sie vom System angehalten wird.


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);
   }
}

Schritt 2: Speichern von App-Daten vor dem Anhalten

Wenn die App das Suspending-Ereignis behandelt, kann sie die wichtigen App-Daten in der Handlerfunktion speichern. Die App sollte die LocalSettings-Speicher-API verwenden, um einfache App-Daten synchron zu speichern.


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
    }
}

Schritt 3: Freigeben exklusiver Ressourcen und Dateihandles

Wenn Ihre App das Suspending-Ereignis behandelt, hat sie auch die Möglichkeit, exklusive Ressourcen und Dateihandles freizugeben. Beispiele für exklusive Ressourcen sind Kameras, E/A-Geräte, externe Geräte und Netzwerkressourcen. Durch die explizite Freigabe von Ressourcen und Dateihandles kann sichergestellt werden, dass andere Apps auf die Ressourcen und Dateihandles zugreifen können, wenn Ihre App sie nicht verwendet. Wenn die App nach der Beendigung aktiviert ist, sollte sie ihre exklusiven Ressourcen und Dateihandles öffnen.

Anmerkungen

Das System hält Ihre App an, wenn der Benutzer zu einer anderen App oder zum Desktop bzw. auf die Startseite wechselt. Wenn der Benutzer wieder zu Ihrer App wechselt, wird diese vom System fortgesetzt. Beim Fortsetzen der App haben die Variablen und Datenstrukturen den gleichen Inhalt wie vor der Unterbrechung. Das System stellt die App exakt so wieder her, wie sie unterbrochen wurde. Dadurch entsteht für den Benutzer der Eindruck, die App wäre im Hintergrund weiter ausgeführt worden.

Das System versucht, die App und die dazugehörigen Daten zu speichern, während sie angehalten ist. Wenn das System aber nicht über die notwendigen Ressourcen verfügt, um die App im Arbeitsspeicher zu behalten, beendet es die App. Wenn der Benutzer wieder zu einer angehaltenen App wechselt, die beendet wurde, sendet das System ein Activated-Ereignis, und es sollte die App-Daten in der OnLaunched-Methode wiederherstellen.

Das System benachrichtigt eine App nicht, wenn sie beendet wird. Wenn Ihre App angehalten wird, muss sie daher die App-Daten speichern und die exklusiven Ressourcen und Dateihandles freigeben, damit diese beim erneuten Aktivieren der App nach der Beendigung wiederhergestellt werden können.

Hinweis   Wenn Sie asynchrone Arbeiten erledigen müssen, während die App angehalten wird, müssen Sie den Abschluss des Anhaltens bis zur Fertigstellung Ihrer Arbeit verzögern. Mithilfe der GetDeferral-Methode im SuspendingOperation-Objekt (verfügbar über die Ereignisargumente) können Sie den Abschluss des Anhaltens verzögern, bis Sie die Complete-Methode für das zurückgegebene SuspendingDeferral-Objekt aufgerufen haben.
 
Hinweis  Zum Verbessern der Reaktionsfähigkeit des Systems in Windows 8.1 erhalten die Apps auf angehaltene Ressourcen einen Zugriff mit geringer Priorität. Zur Unterstützung dieser neuen Priorität wird das Timeout für den Anhaltevorgang ausgedehnt, sodass die App für normale Priorität unter Windows über einen 5-Sekunden-Timeout und unter Windows Phone über einen Timeout von 1 bis 10 Sekunden verfügt. Dieses Timeout-Fenster kann weder verlängert noch geändert werden.
 

Hinweis zum Debuggen mit Microsoft Visual Studio:  Visual Studio verhindert, dass in Windows eine an den Debugger angefügte App angehalten wird. Dies hat den Zweck, dem Benutzer das Anzeigen der Debugging-Benutzeroberfläche von Visual Studio zu ermöglichen, während die App ausgeführt wird. Beim Debuggen einer App können Sie mit Visual Studio ein Anhalteereignis an die App senden. Stellen Sie sicher, dass die Symbolleiste Debugspeicherort angezeigt wird, und klicken Sie dann auf das Symbol Anhalten.

Verwandte Themen

Aufgaben
Aktivieren einer App
Fortsetzen einer App
Konzept
App-Lebenszyklus
Richtlinien
Richtlinien für das Anhalten und Fortsetzen von Apps
Referenz
Windows.UI.Xaml.Application

 

 

Anzeigen:
© 2017 Microsoft