16 Déc TechTalk#5 – Activity Lifecycle
TechTalk #5
Activity Lifecycle
La gestion du cycle de vie des activités et des fragments n’est, en théorie, pas un problème. En pratique, la documentation est difficile à aborder, non exhaustive et manque de clarté. De plus, il existe des différences entre les différents niveaux d’API.
Cela créé des problèmes difficile à déceler et ils ne se manifestent que dans certaines conditions, souvent non triviales à reproduire. De notre expérience, il s’agit de la source n°1 des crashs applicatifs.
Voici quelques règles pour essayer de réduire les mauvaises surprises :
1. Tout ce dont uneactivitya besoin doit lui être fourni dans son intent, via les EXTRAS.
2. Laisser à l’activity que l’on veut lancer le soin de créer son intent(méthode makeIntentsur l’activité de destination).
3.Sauvegarder l’état de l’activity dans onSaveBundleInstanceState et le restaurer dans onCreate. Pour aider à tester ces développements, le paramètre suivant est essentiel : Settings > Developer > Advanced > Do not keep activities > ON. Il permet de tuer les activités dès que celles-ci ne sont plus à l’écran (worst-case scenario de recyclage des ressources par l’OS).
4. Laisser le FragmentManager restaurer l’état des fragments.
5. Savoir dans quelles méthodesde lifecycle faire quelles actions
TechTalk animé par Olivier Tabone | Co-fondateur Directeur Technique chez Ripple Motion