Compartilhar via


Xamarin.Android ListView e o ciclo de vida da atividade

As atividades passam por determinados estados à medida que seu aplicativo é executado, como iniciar, executar, ser pausado e ser interrompido. Para obter mais informações e diretrizes específicas sobre como lidar com transições de estado, consulte o Tutorial do Ciclo de Vida da Atividade. É importante entender o ciclo de vida da atividade e colocar seu ListView código nos locais corretos.

Todos os exemplos neste documento executam 'tarefas de instalação' no método da OnCreate Atividade e (quando necessário) executam 'teardown' em OnDestroy. Os exemplos geralmente usam pequenos conjuntos de dados que não são alterados, portanto, recarregar os dados com mais frequência é desnecessário.

No entanto, se os dados forem alterados com frequência ou usarem muita memória, talvez seja apropriado usar diferentes métodos de ciclo de vida para preencher e atualizar o ListView. Por exemplo, se os dados subjacentes estiverem mudando constantemente (ou podem ser afetados por atualizações em outras atividades), crie o adaptador em OnStart ou OnResume garantirá que os dados mais recentes sejam exibidos sempre que a Atividade for mostrada.

Se o Adaptador usar recursos como memória ou um cursor gerenciado, lembre-se de liberar esses recursos no método complementar para onde eles foram instanciados (por exemplo, objetos criados em OnStart podem ser descartados em OnStop).

Alterações de configuração

É importante lembrar que as alterações de configuração – especialmente a rotação da tela e a visibilidade do teclado – podem fazer com que a atividade atual seja destruída e recriada (a menos que você especifique o contrário usando o ConfigurationChanges atributo ). Isso significa que, em condições normais, girar um dispositivo fará com que um ListView e Adapter sejam recriados e (a menos que você tenha escrito código em OnPause e OnResume) os estados de seleção de linha e posição de rolagem serão perdidos.

O seguinte atributo impediria que uma atividade fosse destruída e recriada como resultado de alterações de configuração:

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

Em seguida, a Atividade deve substituir OnConfigurationChanged para responder a essas alterações adequadamente. Para obter mais detalhes sobre como lidar com as alterações de configuração, consulte a documentação.