Pourquoi utilisons-nous la méthode super onCreate() à l’intérieur de la méthode onCreate() lorsque nous faisons de la programmation Android ?


Chaque Activité que vous faites est lancée par une séquence d'appels de méthodes. onCreate() est le premier de ces appels.

Chaque et chacune de vos Activités étend android.app.Activity soit directement, soit en sous-classant une autre sous-classe d'Activité.


En Java, lorsque vous héritez d'une classe, vous pouvez surcharger ses méthodes pour y exécuter votre propre code. Un exemple très courant de ceci est la surcharge de la méthode toString() lors de l'extension de java.lang.Object.

Lorsque nous surchargeons une méthode, nous avons la possibilité de remplacer complètement la méthode dans notre classe, ou d'étendre la méthode existante de la classe parente&apos ;. En appelant super.onCreate(savedInstanceState) ;, vous indiquez à la VM Dalvik d'exécuter votre code en plus du code existant dans le onCreate() de la classe parente. Si vous omettez cette ligne, seul votre code sera exécuté. Le code existant est complètement ignoré.

Cependant, vous devez inclure ce super appel dans votre méthode, car si vous ne le faites pas'alors le code onCreate() de l'Activity n'est jamais exécuté, et votre application rencontrera toutes sortes de problèmes comme le fait de ne pas avoir de Contexte assigné à l'Activity (bien que vous'frappiez une SuperNotCalledException avant d'avoir une chance de comprendre que vous n'avez pas de contexte).

En bref, les classes propres à Android'peuvent être incroyablement complexes. Le code des classes du framework gère des choses comme le dessin de l'interface utilisateur, le nettoyage de la maison et le maintien des cycles de vie de l'activité et de l'application. Les appels super permettent aux développeurs d'exécuter ce code complexe en coulisse, tout en fournissant un bon niveau d'abstraction pour nos propres applications.

Source : super.onCreate(savedInstanceState);

J'espère que cela vous aidera ! Bonne chance !