/// <summary> /// Wird aufgerufen, wenn die Ausführung der Anwendung angehalten wird. Der Anwendungszustand wird gespeichert, /// ohne zu wissen, ob die Anwendung beendet oder fortgesetzt wird und die Speicherinhalte dabei /// unbeschädigt bleiben. /// </summary> /// <param name="sender">Die Quelle der Anhalteanforderung.</param> /// <param name="e">Details zur Anhalteanforderung.</param> private async void OnSuspending(object sender, SuspendingEventArgs e) { var deferral = e.SuspendingOperation.GetDeferral(); //TODO: Anwendungszustand speichern und alle Hintergrundaktivitäten beenden //Liste speichern: await MyStorage.SchreibeObjektAsync <ObservableCollection <Kunde> >("kunden.dat", _kunden); await MyStorage.SchreibeObjektAsync <ObservableCollection <Bestellung> >("bestellungen.dat", _bestellungen); await MyStorage.SchreibeObjektAsync <ObservableCollection <Speise> >("speisen.dat", _speisen); ApplicationData.Current.RoamingSettings.Values["kdNr"] = _kdId; deferral.Complete(); }
/// <summary> /// Wird aufgerufen, wenn die Anwendung durch den Endbenutzer normal gestartet wird. Weitere Einstiegspunkte /// werden z. B. verwendet, wenn die Anwendung gestartet wird, um eine bestimmte Datei zu öffnen. /// </summary> /// <param name="e">Details über Startanforderung und -prozess.</param> protected override async void OnLaunched(LaunchActivatedEventArgs e) { _kunden = await MyStorage.LeseObjektAsync <ObservableCollection <Kunde> >("kunden.dat"); if (_kunden == null) { _kunden = new ObservableCollection <Kunde>(); } _bestellungen = await MyStorage.LeseObjektAsync <ObservableCollection <Bestellung> >("bestellungen.dat"); if (_bestellungen == null) { _bestellungen = new ObservableCollection <Bestellung>(); } _speisen = await MyStorage.LeseObjektAsync <ObservableCollection <Speise> >("speise.dat"); if (_speisen == null) { _speisen = new ObservableCollection <Speise>(); } _kdId = My_Methods.readSettings <int>("kdNr", 0); #if DEBUG if (System.Diagnostics.Debugger.IsAttached) { this.DebugSettings.EnableFrameRateCounter = true; } #endif Frame rootFrame = Window.Current.Content as Frame; // App-Initialisierung nicht wiederholen, wenn das Fenster bereits Inhalte enthält. // Nur sicherstellen, dass das Fenster aktiv ist. if (rootFrame == null) { // Frame erstellen, der als Navigationskontext fungiert und zum Parameter der ersten Seite navigieren rootFrame = new Frame(); rootFrame.NavigationFailed += OnNavigationFailed; //ZurückNavigation für alle Fenster: rootFrame.Navigated += RootFrame_Navigated; SystemNavigationManager.GetForCurrentView().BackRequested += App_BackRequested; if (e.PreviousExecutionState == ApplicationExecutionState.Terminated) { //TODO: Zustand von zuvor angehaltener Anwendung laden } // Den Frame im aktuellen Fenster platzieren Window.Current.Content = rootFrame; } if (rootFrame.Content == null) { // Wenn der Navigationsstapel nicht wiederhergestellt wird, zur ersten Seite navigieren // und die neue Seite konfigurieren, indem die erforderlichen Informationen als Navigationsparameter // übergeben werden rootFrame.Navigate(typeof(MainPage), e.Arguments); } // Sicherstellen, dass das aktuelle Fenster aktiv ist Window.Current.Activate(); }