Sdílet prostřednictvím


Xamarin.Android ListView a životní cyklus aktivity

Aktivity procházejí určitými stavy při spuštění vaší aplikace, jako je spuštění, pozastavení a zastavení. Další informace a konkrétní pokyny pro zpracování přechodů stavu najdete v kurzu Životního cyklu aktivit. Je důležité pochopit životní cyklus aktivity a umístit kód ListView do správných umístění.

Všechny příklady v tomto dokumentu provádějí "úlohy nastavení" v metodě aktivity OnCreate a (v případě potřeby) provést "odtrhání" v OnDestroy. V příkladech se obecně používají malé datové sady, které se nemění, takže opakované načítání dat je zbytečné.

Nicméně, pokud se vaše data často mění nebo používá velké množství paměti, může být vhodné použít různé metody životního cyklu k naplnění a aktualizaci .ListView Pokud se například podkladová data neustále mění (nebo můžou být ovlivněna aktualizacemi v jiných aktivitách), pak se adaptér vytvoří nebo OnStartOnResume zajistí, že se při každém zobrazení aktivity zobrazí nejnovější data.

Pokud adaptér používá prostředky, jako je paměť nebo spravovaný kurzor, nezapomeňte uvolnit tyto prostředky v doplňkové metodě na místo, kde byly vytvořeny instance (např. objekty vytvořené v OnStart mohou být uvolněny v OnStop).

Změny konfigurace

Je důležité si uvědomit, že změny konfigurace – zejména otočení obrazovky a viditelnost klávesnice – můžou způsobit zničení a opětovné vytvoření aktuální aktivity (pokud neurčíte jinak pomocí atributu ConfigurationChanges ). To znamená, že za normálních podmínek bude rotace zařízení způsobovat ListView a znovu vytvořit a Adapter (pokud jste nezapsali kód OnPause ) OnResumestav posunu a výběru řádku se ztratí.

Následující atribut by zabránil zničení a opětovnému vytvoření aktivity v důsledku změn konfigurace:

[Activity(ConfigurationChanges="keyboardHidden|orientation")]

Aktivita by pak měla přepsat OnConfigurationChanged , aby na tyto změny správně reagovala. Další podrobnosti o tom, jak zpracovat změny konfigurace, najdete v dokumentaci.