Xamarin.Android ListView i cykl życia działania
Działania przechodzą przez niektóre stany, gdy aplikacja działa, na przykład uruchamianie, uruchamianie, wstrzymywanie i zatrzymywanie. Aby uzyskać więcej informacji i konkretnych wytycznych dotyczących obsługi przejść stanu, zobacz Samouczek cyklu życia działania.
Ważne jest, aby zrozumieć cykl życia działania i umieścić ListView
kod w odpowiednich lokalizacjach.
Wszystkie przykłady w tym dokumencie wykonują "zadania konfiguracyjne" w metodzie Działania OnCreate
i (jeśli jest to wymagane) wykonaj "odrężenie" w pliku OnDestroy
. W przykładach zazwyczaj używane są małe zestawy danych, które nie zmieniają się, dlatego ponowne ładowanie danych częściej jest niepotrzebne.
Jeśli jednak dane są często zmieniane lub zużywają dużo pamięci, warto użyć różnych metod cyklu życia w celu wypełnienia i odświeżenia elementu ListView
. Jeśli na przykład dane bazowe stale się zmieniają (lub mogą mieć wpływ na aktualizacje innych działań), wówczas utworzenie karty w OnStart
programie lub OnResume
zapewni wyświetlenie najnowszych danych za każdym razem, gdy zostanie wyświetlone działanie.
Jeśli karta używa zasobów, takich jak pamięć lub kursor zarządzany, pamiętaj, aby zwolnić te zasoby w metodzie uzupełniającej, gdzie zostały utworzone (np. obiekty utworzone w OnStart
programie mogą być usuwane w OnStop
programie ).
Zmiany konfiguracji
Należy pamiętać, że zmiany konfiguracji — zwłaszcza rotacja ekranu i widoczność klawiatury — mogą spowodować zniszczenie i ponowne utworzenie bieżącego działania (chyba że określono inaczej za pomocą atrybutu ConfigurationChanges
). Oznacza to, że w normalnych warunkach obracanie urządzenia spowoduje ListView
ponowne utworzenie elementu i Adapter
(chyba że zapisano kod w OnPause
systemach i OnResume
) stan pozycji przewijania i zaznaczenia wiersza zostanie utracony.
Następujący atrybut uniemożliwiłby zniszczenie i ponowne utworzenie działania w wyniku zmian konfiguracji:
[Activity(ConfigurationChanges="keyboardHidden|orientation")]
Działanie powinno następnie zastąpić odpowiednie reagowanie OnConfigurationChanged
na te zmiany. Aby uzyskać więcej informacji na temat obsługi zmian konfiguracji, zobacz dokumentację.