Como reiniciar una Activity

Objetivo:

Forzar el reinicio de una Activity en un momento determinado.

En alguna ocasión podemos deseear que una Activity reinicie sus valores, comenzando por ejecutarse por el método onCreate, según el ciclo de vida de una aplicación Android.

Para ello usaremos una función simple  en Java, de forma que la llamaremos en el momento deseado. Sólo tendríamos que colocar una función dentro de nuestra Activity que necesitemos reinciar:

Código fuente java:

[sourcecode language=”java”]
//reinicia una Activity
public static void reiniciarActivity(Activity actividad){
Intent intent=new Intent();
intent.setClass(actividad, actividad.getClass());
//llamamos a la actividad
actividad.startActivity(intent);
//finalizamos la actividad actual
actividad.finish();
}
[/sourcecode]

Y haremos la llamada en el momento que queramos reinciar la Activity:

[sourcecode language=”java”]
//…
reiniciarActivity(this);
//..
[/sourcecode]

Como evitar que se reinicie la activity al girar el movil

Objetivo:

Como evitar que se reinicie nuestra activity tras un giro del móvil.

Esto ocurre porque el método onCreate es llamado por defecto, según el ciclo de la vida de una aplicación Android, al girar el móvil. Podemos evitar que ello ocurra.

Lo conseguiremos fácilmente de dos posibles formas: mediante código Java incluido en nuestra Activity, o XML incluido en nuestro Android Manifest.xml:Como evitar que se reinicie nuestra activity tras un giro del móvil.

Para la versión en Java sólo tendríamos que colocar una función dentro de nuestra Activity:

Código fuente java:

[sourcecode language=”java”]
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
setContentView(R.layout.myLayout);
}
[/sourcecode]

Si preferimos la versión XML, debemo colocar la siguiente etiqueta dentro del fichero Android Manifest.xml de nuestra aplicación, en la etiqueta activity de nuestra actividad.

Código fuente XML:

[sourcecode language=”xml”]
android:configChanges="orientation"
[/sourcecode]