Condividi tramite


Xamarin.Android ListView e ciclo di vita delle attività

Le attività passano attraverso determinati stati durante l'esecuzione dell'applicazione, ad esempio l'avvio, l'esecuzione, la sospensione e l'arresto. Per altre informazioni e linee guida specifiche sulla gestione delle transizioni di stato, vedere l'esercitazione sul ciclo di vita delle attività. È importante comprendere il ciclo di vita dell'attività e inserire il ListView codice nelle posizioni corrette.

Tutti gli esempi in questo documento eseguono "attività di installazione" nel metodo dell'attività OnCreate e (se necessario) eseguono "teardown" in OnDestroy. Gli esempi usano in genere set di dati di piccole dimensioni che non cambiano, quindi il ricaricamento dei dati con maggiore frequenza non è necessario.

Tuttavia, se i dati cambiano di frequente o usano molta memoria, potrebbe essere opportuno usare metodi del ciclo di vita diversi per popolare e aggiornare ListView. Ad esempio, se i dati sottostanti cambiano costantemente (o possono essere interessati dagli aggiornamenti di altre attività), la creazione dell'adattatore in OnStart o OnResume garantirà che i dati più recenti vengano visualizzati ogni volta che viene visualizzata l'attività.

Se l'adapter usa risorse come memoria o un cursore gestito, ricordarsi di rilasciare tali risorse nel metodo complementare in cui sono state create istanze , ad esempio gli oggetti creati in OnStart possono essere eliminati in OnStop.

Modifiche di configurazione

È importante ricordare che le modifiche alla configurazione, in particolare la rotazione dello schermo e la visibilità della tastiera, possono causare l'eliminazione e la ricreazione dell'attività corrente (a meno che non si specifichi diversamente usando l'attributo ConfigurationChanges ). Ciò significa che, in condizioni normali, la rotazione di un dispositivo causerà la ricreazione di un ListView oggetto e Adapter (a meno che non sia stato scritto codice in OnPause e OnResume) gli stati di selezione della posizione di scorrimento e della riga andranno persi.

L'attributo seguente impedisce l'eliminazione e la ricreazione di un'attività in seguito alle modifiche alla configurazione:

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

L'attività deve quindi eseguire l'override OnConfigurationChanged per rispondere alle modifiche in modo appropriato. Per altre informazioni su come gestire le modifiche di configurazione, vedere la documentazione.