Partager via


Xamarin.Android ListView et le cycle de vie de l’activité

Les activités passent par certains états à mesure que votre application s’exécute, comme le démarrage, l’exécution, la mise en pause et l’arrêt. Pour plus d’informations et pour obtenir des instructions spécifiques sur la gestion des transitions d’état, consultez le Tutoriel sur le cycle de vie des activités. Il est important de comprendre le cycle de vie de l’activité et de placer votre ListView code aux emplacements appropriés.

Tous les exemples de ce document exécutent des « tâches d’installation » dans la méthode de OnCreate l’activité et (si nécessaire) effectuent la « déchirure » dans OnDestroy. Les exemples utilisent généralement de petits jeux de données qui ne changent pas. Il n’est donc pas nécessaire de recharger les données plus fréquemment.

Toutefois, si vos données changent fréquemment ou utilisent beaucoup de mémoire, il peut être approprié d’utiliser différentes méthodes de cycle de vie pour remplir et actualiser votre ListView. Par exemple, si les données sous-jacentes changent constamment (ou peuvent être affectées par des mises à jour sur d’autres activités), la création de l’adaptateur dans OnStart ou OnResume garantit que les données les plus récentes sont affichées chaque fois que l’activité est affichée.

Si l’adaptateur utilise des ressources telles que la mémoire ou un curseur managé, n’oubliez pas de libérer ces ressources dans la méthode complémentaire où elles ont été instanciées (par exemple, les objets créés dans OnStart peuvent être supprimés dans OnStop).

Modifications de configuration

Il est important de se rappeler que les modifications de configuration, en particulier la rotation de l’écran et la visibilité du clavier, peuvent entraîner la destruction et la recréation de l’activité actuelle (sauf indication contraire à l’aide de l’attribut ConfigurationChanges ). Cela signifie que dans des conditions normales, la rotation d’un appareil entraîne la recréation d’un ListView et Adapter et (sauf si vous avez écrit du code dans OnPause et OnResume) la position de défilement et les états de sélection de ligne seront perdus.

L’attribut suivant empêche la destruction et la recréation d’une activité à la suite de modifications de configuration :

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

L’activité doit ensuite remplacer OnConfigurationChanged pour répondre à ces modifications de manière appropriée. Pour plus d’informations sur la gestion des modifications de configuration, consultez la documentation.