Pokaz cyklu życia aplikacji dla platformy Xamarin.iOS
W tym artykule i przykładowym kodzie przedstawiono cztery stany aplikacji w systemie iOS oraz rolę AppDelegate
metod w powiadamianiu aplikacji o zmianie stanu. Aplikacja będzie drukować aktualizacje do konsoli za każdym razem, gdy aplikacja zmieni stan:
Przewodnik
Otwórz projekt cyklu życia w rozwiązaniu LifecycleDemo.
Otwórz klasę
AppDelegate
. Rejestrowanie zostało dodane do metod cyklu życia, aby wskazać, kiedy aplikacja uległa zmianie stanu:public override void OnActivated(UIApplication application) { Console.WriteLine("OnActivated called, App is active."); } public override void WillEnterForeground(UIApplication application) { Console.WriteLine("App will enter foreground"); } public override void OnResignActivation(UIApplication application) { Console.WriteLine("OnResignActivation called, App moving to inactive state."); } public override void DidEnterBackground(UIApplication application) { Console.WriteLine("App entering background state."); } // not guaranteed that this will run public override void WillTerminate(UIApplication application) { Console.WriteLine("App is terminating."); }
Uruchom aplikację w symulatorze lub na urządzeniu.
OnActivated
zostanie wywołana po uruchomieniu aplikacji. Aplikacja jest teraz w stanie Aktywny .Naciśnij przycisk Narzędzia główne w symulatorze lub urządzeniu, aby przenieść aplikację do tła.
OnResignActivation
iDidEnterBackground
będzie wywoływany jako aplikacja przechodzi zActive
doInactive
i doBackgrounded
stanu. Ponieważ w tle nie ma ustawionego kodu aplikacji, aplikacja jest uznawana za zawieszoną w pamięci.Wróć do aplikacji, aby przywrócić ją na pierwszym planie.
WillEnterForeground
iOnActivated
będą wywoływane:Następujący wiersz kodu w kontrolerze widoku jest wykonywany po wprowadzeniu pierwszego planu aplikacji z tła i zmienia tekst wyświetlany na ekranie:
UIApplication.Notifications.ObserveWillEnterForeground ((sender, args) => { label.Text = "Welcome back!"; });
Naciśnij przycisk Narzędzia główne, aby umieścić aplikację w tle. Następnie naciśnij dwukrotnie przycisk Narzędzia główne , aby wyświetlić przełącznik aplikacji. Na ekranie i Telefon X przesuń palcem w górę z dołu ekranu:
Znajdź aplikację w przełączniku aplikacji i przesuń palcem w górę, aby ją usunąć (w systemie iOS 11 naciśnij długo, aż czerwone ikony pojawią się w rogu):
System iOS zakończy działanie aplikacji. Pamiętaj, że nie jest wywoływana, WillTerminate
ponieważ aplikacja jest już zawieszona w tle.