Hay unos cuantos escenarios en los cuales tu actividad se destruye debido al comportamiento normal de la app, por ejemplo, cuando el usuario presiona el botón Atrás en tu actividad señala su propia destrucción al llamar al método finish(). El sistema también puede destruir tu actividad si actualmente se encuentra parada y no se ha utilizado durante un largo periodo de tiempo o la actividad en primer plano requiere de más recursos y, por ende, el sistema elimina procesos en segundo plano para recuperar memoria.
Cuando tu actividad se destruye porque el usuario presiona el botón Atrás o la actividad se finaliza a si misma, el sistema entiende que la instancia Activity se ha finalizado ya que dicho comportamiento indica que la actividad ya no es necesaria. Sin embargo, si el sistema destruye la actividad debido a restricciones o limitaciones del sistema (en lugar de por el comportamiento habitual de la app), entonces aunque la instancia actual de la Activity se haya ido, el sistema recuerda que existió y así si el usuario vuelve atrás hacia dicha actividad, el sistema crea una nueva instancia de la actividad utilizando un conjunto de datos guardados que describen el estado que tenía la actividad cuando fue destruida. Los datos guardados que el sistema utiliza para recuperar el estado anterior se llaman “estado de la instancia” y es un grupo de pares clave-valor almacenados en un objeto Bundle.
Precaución: Tu actividad será destruida y recreada cada vez que el usuario gira la pantalla. Cuando la pantalla cambia de orientación, el sistema destruye y recree la actividad en primer plano ya que la configuración de la pantalla ha cambiado y tu actividad necesita cargar recursos alternativos (por ejemplo el layout).