2012-08-25 41 views
5

Cuando uso este método, vuelvo a la página de inicio de sesión, pero aún puedo hacer clic en el botón de retorno y volver a la actividad anterior. ¿Por qué no cierra otras actividades?Finalizar todas las actividades excepto una

public void restartApplication() { 
     Intent i = getBaseContext().getPackageManager().getLaunchIntentForPackage(getBaseContext().getPackageName()); 
     i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
     startActivity(i); 
    } 

¿Hay alguna manera de finalizar todas las actividades excepto la actividad de inicio de sesión? o reiniciar toda la aplicación?

Respuesta

0

Intente poner finish(); después de startActivity(i);.

3

Creo que debido al administrador de paquetes, la actividad se inicia en una nueva pila de historial.

Intente utilizar el nombre de la actividad en lugar de obtenerlo desde el administrador de paquetes. Eg.

Intent i = new Intent(getApplicationContext(), LoginActivity.class); 
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
startActivity(i); 
0

Pruebe usar este intent.setFlags (Intent.FLAG_ACTIVITY_CLEAR_TOP); en lugar de intent.addFlags (Intent.FLAG_ACTIVITY_CLEAR_TOP);

Intent intent = new Intent(getApplicationContext(), 
     yourActivity.class); 
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 

startActivity(intent); 
Cuestiones relacionadas