¿Por qué crear una BaseActivity en Android?

Si necesita alguna funcionalidad común en un montón de actividades en su aplicación, es tentador crear una clase de actividad base para que todas puedan subclasificar para heredar esa funcionalidad sin tener que duplicarla. Específicamente, si desea hacer algo en una fase particular del ciclo de vida (como crear, iniciar, reanudar, etc.), es tentador poner eso en una clase base, ya que todas las clases heredadas lo ejecutarán automáticamente.

Sin embargo, muchos considerarían esto como un antipatrón, ya que Java está restringido a una sola herencia (una clase puede extender solo una clase más; opuesto a la herencia múltiple como en C ++). Entonces, si tiene múltiples actividades base que desea extender para proporcionar funcionalidad a una sola actividad real, eso sería imposible desde la perspectiva del lenguaje Java. (Muchos considerarían que esa restricción es algo bueno).

En cambio, es posible que desee considerar la creación de una clase auxiliar que una actividad llama a varios puntos interesantes durante su ciclo de vida. Cree una instancia de ese asistente en onCreate (), luego instálelo durante cada método de ciclo de vida que le interese. Alternativamente, ActivityLifecycleCallbacks se puede usar a un alto nivel para monitorear todas las actividades en una aplicación y realizar alguna acción durante una fase del ciclo de vida de la actividad.

Muchas aplicaciones tienen una funcionalidad común que se realiza en todas las actividades. Por ejemplo, inicializando el servicio de análisis o incluso elementos cruzados de la interfaz de usuario. Tener una actividad base reutiliza el código de manera eficiente y ahorra tiempo de mantenimiento. Su concepto básico de OO.