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.