¿Por qué usamos el método super onCreate() dentro del método onCreate() cuando hacemos programación en Android?

Cada Activity que haces se inicia a través de una secuencia de llamadas a métodos. onCreate() es la primera de estas llamadas.

Todas y cada una de tus Activities extienden android.app.Activity bien directamente o subclasificando otra subclase de Activity.

En Java, cuando heredas de una clase, puedes sobrescribir sus métodos para ejecutar tu propio código en ellos. Un ejemplo muy común de esto es el overriding del método toString() cuando se extiende java.lang.Object.

Cuando se override un método, tenemos la opción de reemplazar completamente el método en nuestra clase, o de extender el método existente de la clase padre'. Al llamar a super.onCreate(savedInstanceState);, le dices a la VM de Dalvik que ejecute tu código además del existente en el onCreate() de la clase padre. Si omites esta línea, sólo se ejecutará tu código. El código existente se ignora por completo.

Sin embargo, debes incluir esta superllamada en tu método, porque si no lo haces el código de onCreate() en Activity nunca se ejecuta, y tu aplicación se encontrará con todo tipo de problemas como no tener un Contexto asignado a la Actividad (aunque te encontrarás con una SuperNotCalledException antes de que tengas la oportunidad de averiguar que no tienes contexto).

En resumen, las clases propias de Android pueden ser increíblemente complejas. El código de las clases del framework se encarga de cosas como el dibujo de la UI, la limpieza de la casa y el mantenimiento de los ciclos de vida de la actividad y de la aplicación. las superllamadas permiten a los desarrolladores ejecutar este complejo código entre bastidores, al tiempo que proporcionan un buen nivel de abstracción para nuestras propias aplicaciones.

Fuente: super.onCreate(savedInstanceState);

¡Espero que esto ayude! Buena suerte!