Une bonne raison de mettre des choses dans le constructeur comme le commentaire de Gili l'avait déclaré est l'utilisation des champs finaux.
Cependant, si vous initialisez des éléments dans le constructeur, la durée de vie de l'objet sera un peu plus longue, bien que je ne pense pas beaucoup car le onCreate
sera appelé peu de temps après.
Bien que ce soit contre mon idéal, j'évite le constructeur pour l'initialisation des membres de l'activité et compte sur onResume()
et onPause()
pour les ressources que mon application a affaire. Pour onCreate()
Je l'utilise habituellement pour faire le mappage de vues sur des variables locales. Bien que les annotations Android le fassent déjà pour moi, j'ai rarement une méthode onCreate()
pour mon activité. Je l'utilise quand même dans le service.
Cependant, si vous regardez les membres que vous pouvez être initialiser
ils auraient une méthode « proche » que vous devez invoquer au bon moment (onResume ou OnPause)
ils feraient partie de la vue ce qui signifie qu'il doit être initialisé alors onCreate doit être appelé
ce sont des constantes qui n'ont pas besoin d'être mises dans le constructeur de toute façon, juste une finale statique ferait l'affaire. Cela inclut les constantes Paint et Path qui peuvent être initialisées par un bloc statique
Qu'en est-il du fait qu'Android peut détruire/recréer votre activité à tout moment? Vous ne savez pas si le constructeur sera appelé alors et même si - quel constructeur sera appelé ... (il en va de même pour les fragments et c'est pourquoi chaque fragment doit implémenter un constructeur par défaut vide). –