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

 

ripplemotion-agence-digitale-techtalk5

TechTalk animé par Olivier Tabone | Co-fondateur Directeur Technique chez Ripple Motion