Die Store-Apps haben einen komplexeren Lebenszyklus als Win32-Anwendungen:
Vor Windows 8 hatten Apps einen einfachen Lebenszyklus. Win32- und .NET-Apps werden entweder ausgeführt oder werden nicht ausgeführt. Wenn ein Benutzer sie minimiert oder von ihnen abweicht, wird er weiter ausgeführt. Dies war in Ordnung, bis tragbare Geräte und Energieverwaltung immer wichtiger wurden.
Windows 8 führte ein neues Anwendungsmodell mit UWP-Apps ein. Auf hohem Niveau wurde ein neuer suspendierter Zustand hinzugefügt. Eine UWP-App wird kurz nach dem Minimieren durch den Benutzer unterbrochen oder wechselt zu einer anderen App. Dies bedeutet, dass die Threads der App gestoppt werden und die App im Speicher verbleibt, sofern das Betriebssystem keine Ressourcen zurückfordern muss. Wenn der Benutzer wieder zur App wechselt, kann er schnell wieder in einen laufenden Zustand versetzt werden. Standardmäßig werden Apps, die sich nicht im Vordergrund befinden, ausgesetzt, was zu Energieeinsparungen und mehr Ressourcen für die derzeit im Vordergrund verfügbare App führt.
Der Suspend-Status fügt neue Anforderungen für Sie als Entwickler hinzu, da das Betriebssystem eine Suspended App möglicherweise beenden möchte, um Ressourcen freizugeben. Die beendete App wird weiterhin in der Taskleiste angezeigt. Wenn der Benutzer darauf klickt, muss die App den Status wiederherstellen, in dem sie sich befand, bevor sie beendet wurde, da der Benutzer nicht weiß, dass das System die App geschlossen hat. Sie werden denken, dass es im Hintergrund gewartet hat, während sie andere Dinge getan haben, und erwarten, dass es sich in demselben Zustand befindet, in dem es sich befand, als sie es verlassen haben. In diesem Thema werden wir uns anschauen, wie wir das erreichen können.
Um die Arbeit fortzusetzen, müssen die Apps Hintergrundaufgaben unterstützen:
Es gibt verschiedene Möglichkeiten für Apps, die im Hintergrund ausgeführt werden müssen, z. B. Hintergrundaufgaben, erweiterte Ausführung und durch Aktivität gesponserte Ausführung (z. B. die Funktion BackgroundMediaEnabled, mit der eine App Medien weiterhin im Hintergrund abspielen kann). . Hintergrundübertragungen können auch dann fortgesetzt werden, wenn Ihre App angehalten oder sogar beendet wird.
Daher unterstützen die Apps, die Sie verwenden, dies nicht und werden wie erwartet gesperrt.
Im Windows SDK gibt es ein Tool zum Deaktivieren des Lebenszyklus einer App
"C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\plmdebug.exe" /enableDebug <PackageFullName>
Tun Sie dies für die Apps, die Sie fortsetzen möchten.