Cómo reiniciar la actividad en Android
¿Cómo reinicio un Android Activity
? Intenté lo siguiente, pero Activity
simplemente se cierra.
public static void restartActivity(Activity act){
Intent intent=new Intent();
intent.setClass(act, act.getClass());
act.startActivity(intent);
act.finish();
}
Hice mi selector de temas así:
Intent intent = getIntent();
finish();
startActivity(intent);
Básicamente, llamo finish()
primero y uso exactamente la misma intención con la que comenzó esta actividad. ¿Eso parece funcionar?
ACTUALIZACIÓN: Como señala Ralf a continuación, Activity.recreate()
este es el camino a seguir en API 11 y más allá. Esto es preferible si estás en un entorno API11+. Aún puedes verificar la versión actual y llamar al fragmento de código anterior si estás en API 10 o inferior. (¡No olvides votar a favor de la respuesta de Ralf!)
Desde el nivel API 11 (Honeycomb), puedes llamar al método recreate() de la actividad (gracias a esta respuesta).
El método recreate() actúa como un cambio de configuración, por lo que también se llaman los métodos onSaveInstanceState() y onRestoreInstanceState(), si corresponde.